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>