选择器可以减少不少的逻辑代码 精简代码量。如下图 首页的RadioButton有选中和非选中两种状态 文字有灰色和蓝色两种状态 图片也有两种状态。
RadioButton 布局:
<RadioButton
android:id="@+id/auction_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@drawable/auction_home" //auction_home为图片选择器
android:button="@null"
android:gravity="center"
android:checked="true"
android:text="首页"
android:textSize="12sp"
android:layout_marginTop="2dp"
android:textColor="@drawable/auction_text" //auction文字颜色的选择器
/>
在drawable资源文件下新建 图片选择器 auction_home.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/auction_sort_hide" android:state_checked="false" ></item>
<item android:drawable="@drawable/auction_sort_show" android:state_checked="true" ></item>
//如果为checked状态 RadioButton背景图片设置为auction_sort_show资源图片 否为auctio_sort_hide
</selector>
在drawable资源文件下新建文字选择器 auction_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:color="@color/hui" android:state_checked="false" ></item>
<item android:color="@color/he" android:state_checked="true" ></item>
</selector>