selector根據不一樣的選定狀態來定義不一樣的現實效果android
經常使用屬性:code
有的須要加android:focusable和android:clickable爲true才能獲取焦點xml
簡單實例:點擊按鈕改變樣式blog
按鈕:事件
<Button android:layout_width="160dp" android:layout_height="wrap_content" android:background="@drawable/button_select" android:text="點我變色" />
button_select.xmlutf-8
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/play_button"></item> <item android:state_focused="true" android:drawable="@drawable/play_button"></item> <item android:drawable="@drawable/button"></item> </selector>
button.xml默認效果資源
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#E53B36"/> </shape>
play_button.xml點擊效果input
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#E8B714"/> </shape>
經常使用checkbox設置:it
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on" /> <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off" /> <item android:state_enabled="true" android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/btn_check_on_pressed" /> <item android:state_enabled="true" android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/btn_check_off_pressed" /> <item android:state_focused="true" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on_selected" /> <item android:state_focused="true" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off_selected" /> <item android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off" /> <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on" /> </selector>
經常使用ImageButton設置:io
<?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/button2_down" /> <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/button2_over" /> <item android:state_enabled="true" android:drawable="@drawable/button2" /> </selector>
經常使用Button設置:
<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/login_input" /> <item android:state_pressed="true" android:drawable="@drawable/login_input" /> <item android:state_focused="true" android:drawable="@drawable/input_over" /> </selector>
設置TextView
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:color="@color/gray" android:state_pressed="false" android:state_enabled="true"/> <item android:color="@color/white" android:state_pressed="true" android:state_enabled="true"/> <item android:color="@color/gray" android:state_enabled="false"/></selector>