<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 状态项,以下不同的状态定义不同的形状 -->
<item android:state_pressed="true" >
<shape>
<!-- 注意!!!!!!!!solid和gradient不能同时出现在同一个shape中,如果同时存在,则以后一个属性为准。是不是因为后者覆盖了前者呢?!!!!!!!!!! -->
<!-- 填充颜色 -->
<solid android:color="#00ff00"/>
<!-- 渐变属性 ,type有不同的类型,和相应的属性,比如圆形就有半径的属性-->
<gradient
android:startColor="#ff8c00"
android:endColor="#FFFFFF"
android:type="linear" />
<!-- 描边属性,当不定义dash属性时则表示边是实线;当dashGap=0时也是实线 -->
<stroke
android:width="2dp"
android:color="#dcdcdc"
android:dashWidth="5dp"
android:dashGap="10dp" />
<!-- 圆角,可以分别定义4个角-->
<corners
android:radius="2dp" />
<!-- 间隔 -->
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<!-- 设置大小 -->
<size
android:width="100dp"
android:height="50dp"
/>
</shape>
</item>
<!--
android:state_pressed 是否按下,如一个按钮触摸或者点击。
android:state_focused 是否取得焦点,比如用户选择了一个文本框。
android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性
android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
android:state_checked 被checked了,如:一个RadioButton可以被check了。
android:state_enabled 能够接受触摸或者点击事件
android:state_activated 被激活(这个麻烦举个例子,不是特明白)
android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了
注意:如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。
-->
<item android:state_focused="true" > </item>
<!-- 用layer-list实现多层重叠-->
<item android:state_selected="true">
<layer-list>
<!-- 第一层和相应边距 -->
<item android:left="10dp">
<!-- 设置形状 -->
<shape >
<gradient
android:startColor="#000fff"
....
/>
<corners android:radius="4dp"/>
....
</shape>
</item>
<!-- 第二层 -->
<item>
.....
</item>
</layer-list>
</item>
<!-- 默认 -->
<item> </item>
</selector>