下面是selector
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/vp_select" android:state_selected="true"></item>
<item android:drawable="@drawable/layer_vp_not_select" android:state_selected="false"></item>
</selector>
下面是layer_vp_not_select.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="24dp"
android:height="24dp" />
</shape>
</item>
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp">
<bitmap
android:gravity="center"
android:src="@drawable/vp_no_select"></bitmap>
<shape android:shape="oval">
<size
android:width="16dp"
android:height="16dp" />
</shape>
</item>
</layer-list>
引用selector
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="20dp"
android:layout_height="20dp">
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_centerInParent="true"
android:src="@drawable/selector_round" />
</RelativeLayout>
因为两张图片需要放入一个imageview,因为切得不好,尺寸大小不一样,按道理尺寸小的那个应该外面多切了一些透明的。这样导致两张图放入一个selector就不对了,如下图,上面是切错的,下面是切对的。这种情况除了重新问美工要图(我要了,他说原图就是一大一小),还有可以用layer-list包装图。在第一个item设置一张大的背景,第二个item,把图放入,并且设置大小为比较小一点。相当于加了一层透明的圈在外面。实测好用