TextView 在点击态、正常态、不可用态下设置不同字体颜色的方式与button设置不同背景色方式基本一致,有两种方法:
1.在xml中设置
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 为了讲述方便,都直接用的颜色字符串,正规应使用@color/xxxxx -->
<!-- 按压态 -->
<item android:state_pressed="true"
android:color="#FF33FF33"/>
<!-- 可用态 -->
<item android:state_enabled="true"
android:color="#FF3388FF"/>
<!-- 其他 -->
<item android:color="#663388FF"/>
</selector>
对相应的textView设置即可:
text设置文本色.png
另外需要在activity中设置onClickListener,不然是不可点击态的:
设置点击事件.png
2.在代码中动态设置
在activity中添加如下代码即可:
动态设置颜色.png
注意:千万别写成了注释中的样子:
testTextView.setTextColor(resources.getColor(R.color.text_color_select))
这种方法设置的颜色是单一颜色,这也是我写这篇文章的重点,不要被xml里面android:textColor
这种设置方式误导,xml里面可以自动识别出传入的是色值list还是单一色值,在代码中动态设置则需手动用resources.getColorStateList
表示获取的是色值列表。