系统的Drawable(二)-Selector
Selector漫谈
Selector是定义 StateListDrawable
的标签,该Drawable代表着一个Drawable的集合,每一个Drawable都对应着View的一个状态,系统会根据View的状态来选择相应的Drawable,该Drawable常常会被用于做View的背景。通过 <Item>
标签来定义View对象的状态。
Android系统Drawable
Selector的属性
constantSize
表示StateListDrawable的固有大小是否会随着状态的改变而改变,状态的切换会导致切换到不同的Drawable,而不同的Drawable有不同的固有大小。此属性是一个布尔值,true表示StateListDrawable的固有大小保持不变,StateListDrawable的固有大小为Drawable集合的固有大小的最大值,false表示StateListDrawable的固有大小根据Drawable的不同而改变。默认为false。
dither
开启抖动效果,开启后可以让图片在低质量的屏幕上仍然有较好的显式效果,默认为true
variablePadding
StateListDrawable的padding属性是否会根据状态的改变而改变,true表示会根据状态的改变而改变,false表示不会跟随状态的改变而改变,此时StateListDrawable的padding的最大值,是Drawable集合的最大值。默认为false,不建议开启。
Item
代表View的状态和与状态相对应的Drawable。一个View主要以下的状态,每一个状态都是一个布尔值。
状态 | 描述 |
---|---|
表示View是否处于激活状态 | |
当一个View被视为是活动的 | |
是否是可以被想选中的,用于ChekBox | |
CheckBox/RadioButton是否被选中 | |
View 是否是可用状态 | |
当一个视图为有序列表的第一个元素的时候 | |
当View获得焦点的时候 | |
当一个视图为有序列表的最后一个元素的时候 | |
当View位于有序集合的中间位置时 | |
View是否被按压 | |
View是否被选中 | |
State value for StateListDrawable, set when a view or drawable is considered "single" by its host. | |
当Window获得焦点时 |