标签:
颜色
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" android:color="@color/_color_press"/><item android:state_selected="true" android:color="@color/_color_select"/><item android:color="@color/_color"/></selector>android:textColor="@drawable/_color_selector"
图片
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/_bg_press" android:state_pressed="true"/><item android:drawable="@drawable/_bg_select" android:state_selected="true"/><item android:drawable="@drawable/_bg"/></selector>android:background="@drawable/_bg_selector"
9patch和shape图片
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true"><nine-patch android:src="@drawable/_press" /></item><item><shape><corners android:radius="3dp" /><stroke android:width="1dp" android:color="@color/line_divider" /></shape></item></selectorandroid:background="@drawable/_bg_selector"
支持的状态
我们在定义一个drawable的时候可以通过xml定义drawable对象,它能使一个图片能在不同的状态下显示不同的图案,具体支持以下类型
- android:state_pressed 是否按下,如一个按钮触摸或者点击。☆☆☆
- android:state_focused 是否取得焦点,比如用户选择了一个文本框。
- android:state_hovered 光标是否悬停,通常与focused相同,它是4.0的新特性
- android:state_selected 被选中,它与focus 并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
- android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
- android:state_checked 被checked了,如:一个【RadioButton】可以被check了。☆☆☆
- android:state_enabled 能够接受触摸或者点击事件,默认为true。
- android:state_activated 被激活(这个麻烦举个例子,不是特明白)
- android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了
注意
- 如果有多个item,那么程序将自动【从上到下】进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
- 如果一个item没有任何的状态说明,那么它将可以和任何一个状态匹配
- 所以,无状态的item一定要放在最下面。
标签:
原文地址:http://www.cnblogs.com/baiqiantao/p/5316799.html