使用Android的顏色選擇器可以讓我們的view在不同狀態下顯示不同的顏色。
1、Android中ListView 選擇某項改變該行字體顏色
2、文件位置
res/color/filename.xml,文件名被做資源的ID
3、語法示例
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="@color/white" /> <item android:state_focused="true" android:color="@color/white" /> <item android:state_pressed="true" android:color="@color/white" /> <item android:state_enabled="true" android:color="@color/black"/> <item android:state_enabled="false" android:color="@color/white"/> <item android:state_window_focused="false" android:color="@color/black"/> <item android:color="@color/black" /> </selector>
4、屬性
android:color
十六進制顏色,必須的。顏色是用RGB值來指定的,並且可選擇alpha通道。
這個值始終是用#字符開頭,后面跟的是Appha-Red-Green-Blue信息,格式如下:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
android:state_pressed
一個布爾值,如果這個項目是在對象被按下時使用,那么就要設置為true。(如,按鈕被觸摸或點擊時。)false應該用於默認的非按下狀態。
android:state_focused
一個布爾值,如果這個項目是在對象獲取焦點時使用,那么就要設置為true。如,一個選項標簽被打開時。如果這個項目要用於對象沒有被被選擇的時候,那么就要設置為false。
android:state_checkable
一個布爾值,如果這個項目要用於對象的可選擇狀態,那么就要設置為true。如果這個項目要用於不可選狀態,那么就要設置為false。(它只用於一個對象在可選和不可選之間的轉換)。
android:state_checked
一個布爾值,如果這個項目要用於對象被勾選的時候,那么就要設置為true。否者設為false。
android:state_enabled
一個布爾值,如果這個項目要用於對象可用狀態(接受觸摸或點擊事件的能力),那么就要設置為true,否者設置為false。
android:state_window_focused
一個布爾值,如果這個項目要用於應用程序窗口的有焦點狀態(應用程序是在前台),那么就要設置為true,否者設置false。
5、注意
A:要記住,狀態列表中一個與對象當前狀態匹配的項目會被使用。因此,如果列表中的第一項沒有包含以上任何一種狀態屬性,那么每次都會使用這個項目,因此默認設置應該始終被放到最后。
B:如果出現失去焦點,背景色延遲的情況,不要使用magin。
C:drawable下的selector可是設置狀態背景列表(可以讓view的背景在不同狀態時變化)說明:也可以定義狀態背景列表,但是是定義在drawable文件夾下,用的不是color屬性,而是drawable屬性。