Rod*_*igo 49 android textcolor
状态改变时我需要改变文字颜色(按下,对焦)......
如何设置的文本颜色TextView使用ColorsStateList?
编辑,解决:
textView.setTextColor(new ColorStateList(
new int [] [] {
new int [] {android.R.attr.state_pressed},
new int [] {android.R.attr.state_focused},
new int [] {}
},
new int [] {
Color.rgb (255, 128, 192),
Color.rgb (100, 200, 192),
Color.White
}
));
Run Code Online (Sandbox Code Playgroud)
解决方案2
textView.setTextColor(getResources().getColorStateList(R.color.your_colors))
Run Code Online (Sandbox Code Playgroud)
imb*_*izi 78
如果需要在代码中设置颜色(使用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
}
Run Code Online (Sandbox Code Playgroud)
RES /颜色/ your_colors.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>
Run Code Online (Sandbox Code Playgroud)
ffl*_*dro 28
你必须使用getColorStateList()
我也在努力解决这个问题,如果你想使用a state list,你需要在color资源文件夹中声明它,而不是drawable文件夹,并使用setTextColor(getResources().getColorStateList(R.color.your_colors)).
您还可以使用ContextCompat加载颜色状态列表
ColorStateList colors = ContextCompat.getColorStateList(this,R.color.my_color_list);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46407 次 |
| 最近记录: |