shape和selector嵌套版
<?xml version="1.0" encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><!-- 非触摸模式下获得焦点并单击时的背景图片 --><item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic_red" /><shape>
<!-- 渐变
type的三种类型
sweep点击后显示圆锥渐变
linear显示线性渐变
radial圆形渐变gradientRadius渐变扩散度
android:centerX="50%"设置x轴中心偏移
android:centerY="50%"设置y轴中心偏移
centerColor 中心颜色angle 渐变旋转角度(只能旋转45度的倍数,且不能用type中的radial渐变)
solid 实心填充,有渐变就会被覆盖
size 调整大小,似乎没什么效果
-->
<solid android:color="#0f0" />
<size android:height="100dp" android:width="100dp"/>
<gradient
android:centerX="50%"
android:centerY="50%"
android:centerColor="#ff39a9"
android:angle="-45"
android:startColor="#ff8c00"
android:endColor="#0ad9d5"
android:type="linear"
android:gradientRadius="500" />
<!-- 描边
dashwidth 虚线边框线宽
dashgap 虚线边框空白宽度
-->
<stroke
android:width="1dp"
android:color="#fa46a6"
android:dashWidth="30dp"
android:dashGap="3dp" />
<!-- 圆角
可以设置单个角度的圆角
-->
<corners
android:radius="20dp" />
<!--设置边距-->
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:startColor="#ffc2b7"
android:endColor="#ffc2b7"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#dcdcdc" />
<corners
android:radius="2dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<solid android:color="#ff9d77"/>
<stroke
android:width="2dp"
android:color="#fad3cf" />
<corners
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
shape单独使用
<?xml version="1.0" encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apk/res/android"> <!-- 渐变 type的三种类型 sweep点击后显示圆锥渐变 linear显示线性渐变 radial圆形渐变 gradientRadius渐变扩散度 android:centerX="50%"设置x轴中心偏移 android:centerY="50%"设置y轴中心偏移 centerColor 中心颜色 angle 渐变旋转角度(只能旋转45度的倍数,且不能用type中的radial渐变) solid 实心填充,有渐变就会被覆盖 size 调整大小,似乎没什么效果 --><solid android:color="#0f0" /> <size android:height="100dp" android:width="100dp"/> <gradientandroid:centerX="50%"android:centerY="50%"android:centerColor="#ff39a9"android:angle="-45"android:startColor="#ff8c00"android:endColor="#0ad9d5"android:type="linear"android:gradientRadius="500" /><!-- 描边 dashwidth 虚线边框线宽 dashgap 虚线边框空白宽度--><strokeandroid:width="1dp"android:color="#fa46a6"android:dashWidth="30dp"android:dashGap="3dp" /><!-- 圆角 可以设置单个角度的圆角--><cornersandroid:radius="20dp" /><!--设置边距--><paddingandroid:left="0dp"android:top="0dp"android:right="0dp"android:bottom="0dp" /></shape>
<!-- 这是单独使用selector-->
<?xml version="1.0" encoding="utf-8" ?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 默认时的背景图片--> <item android:drawable="@drawable/pic1" /> <!-- 没有焦点时的背景图片 --> <item android:state_window_focused="false" android:drawable="@drawable/pic_blue" /> <!-- 非触摸模式下获得焦点并单击时的背景图片 --> <item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/pic_red" /> <!-- 触摸模式下单击时的背景图片--> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic_pink" /> <!--选中时的图片背景--> <item android:state_selected="true" android:drawable="@drawable/pic_orange" /> <!--获得焦点时的图片背景--> <item android:state_focused="true" android:drawable="@drawable/pic_green" /></selector>