StateListDrawable 对象所显示的 Drawable 对象会随着目标组件的状态而改变。
例如给一个输入框指定失去焦点和获得焦点时的字体颜色:
1 <?xml version="1.0" encoding="utf-8"?> 2 <selector xmlns:android="http://schemas.android.com/apk/res/android"> 3 <!-- 获取焦点时的颜色 --> 4 <item 5 android:state_focused="true" 6 android:color="@color/blue" /> 7 <!-- 失去焦点时的颜色 --> 8 <item 9 android:state_focused="false" 10 android:color="@color/red" /> 11 </selector>
在布局文件中使用该 drable 资源:
1 <EditText 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 android:textColor="@drawable/my_edit"/>
其中 StateListDrawable 的 <item /> 支持的状态有:
属性 | 含义 |
android:state_active | 处于激活状态 |
android:state_checkable | 处于可勾选状态 |
android:state_checked | 处于已勾选状态 |
android:state_enable | 处于可用状态 |
android:state_first | 处于开始状态 |
android:state_focused | 处于获得焦点状态 |
android:state_last | 处于结束状态 |
android:state_middle | 处于中间状态 |
android:state_pressed | 处于被按下状态 |
android:state_selected | 处于被选中状态 |
android:state_window_focused | 窗口得到焦点状态 |