首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

如何短暂时间改变textview背景颜色

2013-04-02 
怎么短暂时间改变textview背景颜色我想要的效果其实就是类似listview那样,每个项,单击时会变一下颜色,让人

怎么短暂时间改变textview背景颜色
我想要的效果其实就是类似listview那样,每个项,单击时会变一下颜色,让人知道已经点击生效了。
不过我没用listview,是一些textview纵向排列的
每个textview的onclick事件里我这么设定来改变颜色


public void onClick(View view)
{
    TextView textView=(TextView)view;
    Drawable background=textView.getBackground();
    textView.setBackgroundColor(0xFFCECECE);
    ............
    打开一个新的窗口
    textView.setBackgroundDrawable(background);
    //如果不写最后一行setBackgroundDrawable的话,是可以改变颜色的,这行代码是要恢复到原来的颜色
}


感觉这样应该是可以的吧
但是实际执行时,单击这个textview的话,背景颜色是不会有任何变化的。
请问这是为什么
[解决办法]
老兄,你可能不是太熟悉 界面的渲染机制。 你调用setBackgroundColor,只是修改了属性,并没有真正刷新。 

界面线程都是消息机制, 你本身是在click事件中调用的。 他必须repaint才会真正绘制。 所以在事件中写的任何属性更改都不是立时生效的。 

=============
至于你这个功能,可以用Timer实现。 设定比如500ms后再改一次。

[解决办法]
可以实现OnTouchListener接口,实现 boolean onTouch(View v, MotionEvent event)方法
当event.getAction() == MotionEvent.ACTION_DOWN,改变背景颜色
当event.getAction() == MotionEvent.ACTION_UP,还原背景颜色
[解决办法]
引用:
引用:给TEXTVIEW添加背景吧
android:background="@drawable/my_button_click"
背景就调用这个my_button_click,这是自己写的一个XML
XML的类容就是下边的,你可以改成颜色或者图片用
<?xml version="1.0" encoding="utf-……

随便建个XML文件。将我写的那些复制进去就好了。没你想的那么高深!

热点排行