LayerDrawable对应的XML标签是<layer-list>,它表示一种层次化的Drawable集合,通过将不同的Drawable放置在不同的层上面从而达到一种叠加后的效果。
实现RadioButton的按钮自定义效果:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<layer-list>
<item android:right="5dp">
<shape android:shape="oval">
<size android:width="20dp" android:height="20dp" />
<gradient android:angle="0" android:endColor="#848ae3" android:startColor="#a5cefb" android:type="linear" />
</shape>
</item>
<item android:right="5dp">
<shape android:shape="oval">
<size android:width="20dp" android:height="20dp" />
<solid android:color="#ffffff" />
<stroke android:width="12dp" android:color="@color/transparent" />
</shape>
</item>
</layer-list>
</item>
<item android:state_checked="false">
<layer-list>
<item android:right="5dp">
<shape android:shape="oval">
<size android:width="20dp" android:height="20dp" />
<solid android:color="#fbfbfc" />
<stroke android:width="1dp" android:color="#d4dadd" />
</shape>
</item>
</layer-list>
</item>
</selector>
EditText 输入框只显示下方的一条边
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:bottom="0dp" android:left="-2dp" android:right="-2dp" android:top="-2dp"> <shape> <solid android:color="@android:color/transparent" /> <stroke android:width="1dp" android:color="@android:color/darker_gray" /> <padding android:bottom="4dp" /> </shape> </item> </layer-list>