当状态改变(按下、聚焦)时,我需要更改文本颜色...
如何使用ColorsStateList
设置TextView
的文本颜色
发布于 2011-08-06 12:41:00
如果您需要在代码中设置颜色(使用ColorStateList),但仍然希望在XML中保留颜色状态,则可能需要使用以下命令:
try {
XmlResourceParser parser = getResources().getXml(R.color.your_colors);
ColorStateList colors = ColorStateList.createFromXml(getResources(), parser);
mText.setTextColor(colors);
} catch (Exception e) {
// handle exceptions
}
res/color/your_color s.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="#222222"/>
<item android:state_selected="true"
android:color="#222222"/>
<item android:state_focused="true"
android:color="#222222"/>
<item android:color="#0000ff"/>
</selector>
发布于 2013-06-30 09:36:24
您必须使用getColorStateList()
我也在努力解决这个问题,如果你想使用state list
,你需要在color
资源文件夹中声明它,而不是在drawable
文件夹中,并使用setTextColor(getResources().getColorStateList(R.color.your_colors))
。
发布于 2016-12-19 19:53:44
还可以使用ContextCompat加载颜色状态列表
ColorStateList colors = ContextCompat.getColorStateList(this,R.color.my_color_list);
https://stackoverflow.com/questions/6678694
复制相似问题