您的位置:首页 > 其它

ColorStateList改变按钮、文本框文字变色

2015-08-17 15:46 597 查看
在平时项目中经常要做的就是改变按钮的背景颜色、文字验证,文本框也是如此。

我们知道用xml来实现选中效果是非常容易的,而且也简单。xml代码如下:这样的可以直接写在res/color/button_text.xml中

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#1c5e79"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#1c5e79"/> <!-- focused -->
<item android:color="#0b5979"/> <!-- default -->
</selector>


xml中只要加一行代码:android:textColor="@drawable/tv_traffic_textcolor_selector"

但是在动态代码中如何使用这个xml呢?

今天主要说的就是如果通过代码来实现这个效果,实现可以用两种方式:

第一种

ColorStateList csl=(ColorStateList)getResources().getColorStateList(R.drawable.tv_traffic_textcolor_selector);
if(csl!=null){
holder.tvTrafficTool.setTextColor(csl);
}


第二种:

XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text);
try {
ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);
btn.setTextColor(csl);
} catch (Exception e) {
// TODO: handle exception
}


都是一样的效果。,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: