selector(状态列表):color-selector和drawable-selector
一、color-selector
1、color-selector基本属性
<?xml version=”1.0” encoding=”utf-8”?>
<selector xmlns:android=”http://schemas.android.com/apk/res/android”>
<item
android:color=”#ffffff”//颜色值,#RGB,$ARGB,#RRGGBB,#AARRGGBB
android:state_pressed=”true”//是否触摸
android:state_focused=”true”//是否获得焦点
android:state_selected=”true”//控件是否可被选择
android:state_checkable=”true”//是否可选
android:state_checked=”true”//是否可用
android:state_window_focused=”true”//是否窗口聚焦
/>
</selector>
2、color-selector使用
test_color_selector.xml
<?xml version=”1.0” encoding=”utf-8”?>
<selector xmlns:android=”http://schemas.android.com/apk/res/android”
<!--按压时的状态-->
<item
android:state_pressed=”true”
android:color=”#ffff0000”
/>
<!--未按压时的状态-->
<item
android:state_pressed=”false”
android:color=”#ff0000ff”
/>
</selector>
PS:item按照编写顺序执行,一旦一个匹配上,后面的都不会执行
layout文件
<Button
android:id=”@+id/btn”
android:layout_width=”10dp”
android:layout_height=”10dp”
android:textColor=”@color/test_color_selector”
/>
二、drawable-selector
1、drawable-selector基本属性
<?xml version=”1.0” encoding=”utf-8”?>
<selector xmlns:android=”http://schemas.android.com/apk/res/android”>
<item
android:drawable=”@drawable/btn_bg”//颜色值,#RGB,$ARGB,#RRGGBB,#AARRGGBB
android:state_pressed=”true”//是否触摸
android:state_focused=”true”//是否获得焦点
android:state_selected=”true”//是否被选中
android:state_checkable=”true”//是否可选
android:state_checked=”true”//是否被选中,例如RadioButton
android:state_window_focused=”true”//是否窗口聚焦
/>
</selector>
2、drawable-selector使用
test_drawable_selector.xml
<?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/button_bg_press”
/>
<!--未按压时的状态-->
<item
android:state_pressed=”false”
android:drawable=”@drawable/button_bg_unpress”
/>
</selector>
PS:item按照编写顺序执行,一旦一个匹配上,后面的都不会执行
layout文件
<Button
android:id=”@+id/btn”
android:layout_width=”10dp”
android:layout_height=”10dp”
android:background=”@drawable/test_drawable_selector”
/>
三、在selector中使用shape
<?xml version=”1.0” encoding=”utf-8”?>
<selector xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:state_pressed=”true”>
<shape>
...
</shape>
</item>
</selector>