標籤:
在drawable/xxx.xml中配置,通過配置selector,可以使系統運行時根據控制項對象的狀態使用相應的圖片、文字等。
- android:state_selected 控制項選中狀態,可以為true或false
- android:state_focused 控制項獲得焦點狀態,可以為true或false
- android:state_pressed 控制項點擊狀態,可以為true或false
- android:state_enabled 控制項使能狀態,可以為true或false
- android:state_checkable 控制項可勾選狀態,可以為true或false
- android:state_checked 控制項勾選狀態,可以為true或false
注意:在狀態原因中,第一個匹配目前狀態的item會被使用。因此,如果第一個item沒有任何狀態特性的話,那麼它將每次都被使用,所以預設的值必須總是在最後。
- android:window_focused 應用程式視窗焦點狀態,可以為true或false
- android:color 定義特定狀態的顏色為16進位顏色。這個顏色由rgb值指定,可帶alpha,必須以”#“開頭,後面跟隨alpha-red-green-blue資訊,格式可以為:#rgb,#argb,#rrggbb,#aarrggbb
例子01:
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 預設時的背景圖片 --> <item android:drawable="@drawable/pic1" /> <!-- 沒有焦點時的背景圖片 --> <item android:state_window_focused="false" android:drawable="@drawable/pic1" /> <!-- 非觸摸模式下獲得焦點並單擊時的背景圖片 --> <item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic2" /> <!-- 觸摸模式下單擊時的背景圖片 --> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3" /> <!--選中時的圖片背景 --> <item android:state_selected="true" android:drawable="@drawable/pic4" /> <!--獲得焦點時的圖片背景 --> <item android:state_focused="true" android:drawable="@drawable/pic5" /> </selector>
例子02:
按下或擷取焦點時讓button呈現不同的狀態
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/login_button2" /> <item android:state_focused="true" android:drawable="@drawable/login_button2" /> <item android:drawable="@drawable/login_button" /> </selector>
使用方式:
<Button android:id="@+id/style_button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="16dp" android:text="用代碼動態設定點擊樣式" />
參考自:
http://blog.csdn.net/breeze666/article/details/7747649
http://www.cnblogs.com/tianzhijiexian/p/3854962.html
Android中的selector