Android开发中,经常用到状态选择器selector,经常用的格式为类似这样的,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_button_round" android:state_checked="true" />
<item android:drawable="@drawable/shape_button_round" android:state_focused="true" />
<item android:drawable="@drawable/shape_button_round" android:state_pressed="true"/>
<item android:drawable="@drawable/shape_radio_check_stroke"/>
</selector>
shape_button_round.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="@color/circle" />
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="5dp" />
<!-- padding:Button里面的文字与Button边界的间隔 -->
</shape>
我们也可以直接写在一个selector里面,如下
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<solid android:color="@color/btn_pressed_color"/>
<corners android:radius="8dp"/>
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid android:color="@color/btn_press_color"/>
<corners android:radius="8dp"/>
</shape>
</item>
</selector>