通常情况下,为了更好的复用性,我们都是分别在两个xml文件中写shape和selector,然后在selector中引用shape。
但是如果这个shape只在一个selector中使用,不存在其他的复用情况,那么我们就可以直接将shape嵌套在selector的xml文件中
1 定义直接嵌套shape的Selector,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners
android:radius="5dp"/>
<stroke
android:width="3dp"
android:color="#ff0000"/>
<solid
android:color="#00ff00"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<corners android:radius="20dp"/>
<solid android:color="#5e9fea"/>
<stroke android:width="3dp"
android:color="#ff0000"
android:dashGap="5dp"
android:dashWidth="15dp"/>
</shape>
</item>
</selector>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
2 xml布局文件中使用selector
在布局文件中定义一个Button,设置背景为上面定义的selector
<Button android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/selector_shape_multi"
android:text="Button-----"/>
3 部署后的效果
普通状态下的效果
按下状态下的效果
转载自:http://blog.csdn.net/north1989/article/details/52933014