StateListDrawable资源是定义在XML文件中的Drawable对象,能根据状态呈现不同的图像。
例如:一个Button组件存在多种不同的状态(pressed、enabled或focused等),使用StateListDrawable资源可以为按钮的每个状态提供不同的按钮图片。
StateListDrawable资源文件同图片资源一样,也是放在res\drawable-xxxx目录中。StateListDrawable资源文件的根元素为,在该元素中可以包括多个元素。每个item元素可以设置以下两个属性:
- android:color或android:drawable:用于指定颜色或Drawable资源。
- android:state_xxx:用于指定一个特定的状态,常用的状态属性如下表。
state_xxx
active 激活 checked选中 enabled可用 first开始 focused获得焦点 last结束
middle中间 pressed被按下 selected被选择 window_focused窗口是否已经得到焦点
<?xml version="1.0" encoding="uft-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#f60" android:state_focused="true"/>
<item android:color="#0a0" android:state_focused="false"/>
</selector>
创建一个StateListDrawable资源后,可以将该文件放置在res/drawable-xxx目录下,然后在相应组件中使用该资源即可。