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));