Android里TextView动态设置颜色(setTextCo
2019-04-18 本文已影响0人
_compass
今天在写一个布局的时候,发现设置某一个TextView的选中字色,不起作用:
起初是这么写的:
// 设置字色,选中与非选中
textView.setTextColor(getResources().getColor(R.color.text_judge_color));
其中R.color.text_judge_color的布局是这么写的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#3ebfe9" android:state_pressed="true" />
<item android:color="#3ebfe9" android:state_selected="true" />
<item android:color="@color/text_color" /> <!-- not selected -->
</selector>
效果如下:
![](https://img.haomeiwen.com/i1270469/32c374abc053aa51.png)
我们需要选中时文字颜色也随即显示蓝色,显然是不对的。
后来发现,这么设置是不行的,要使用getColorStateList来设置颜色。
代码如下:
ColorStateList csl = getResources().getColorStateList(R.color.text_judge_color);
textView.setTextColor(csl);
运行效果如下:
![](https://img.haomeiwen.com/i1270469/268e8833b585c987.png)
这样才是正确的。