TextView当中设置颜色时,除了使用资源文件中的颜色,还会需要使用接口传来的色值动态设置颜色,总结一下各类颜色的表示形式传入setTextColor的方法
1.项目的res\values\colors.xml文件中,定义颜色
<resources>
<color name="colorPrimary">#00a0ff</color>
</resources>
然后通过资源引用(tv为预定义好的TextView)
tv.setTextColor(getResources().getColor(R.color.colorPrimary));
2.十六进制色值,像#FFFFFF
tv.setTextColor(Color.parseColor("#FFFFFF"));
3.argb色值,255, 255, 255
tv.setTextColor(Color.rgb(255, 255, 255));
需要传入各种状态(按下变色)下的不同颜色时,可以使用ColorStateList
首先定义好各状态下的color
res\color\目录下,创建一个selector
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:color="@color/bg_notify" />
<item android:state_pressed="true" android:color="@color/orange"/>
<!-- pressed -->
</selector>
然后
tv.setTextColor(getResources().getColorStateList(R.color.color_submit));