Android使用buttonselect器的图层列表
我们如何使用图层列表作为button的绘图。 我有一个button:
<item android:state_pressed="true"> <shape> <gradient android:endColor="@color/white" android:startColor="@color/grey_blue_light" android:angle="90" /> <stroke android:width="1dp" android:color="@color/aqua_blue" /> <corners android:radius="3dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true"> </item> <item> </item>
现在,当按下button状态时,我需要一个图层列表作为形状:
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="@color/aqua_blue" /> </shape> </item> <item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp"> <shape android:shape="oval"> <solid android:color="@color/aqua_blue" /> </shape> </item>
我们如何在buttonselect器中使用这个图层列表?
Step-1在drawable文件夹下为三种不同的button状态创build三个不同的layer_list xml。 例如,这些XML的名称是layer1.xml, layer2.xml, layer3.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="270" android:startColor="#0000ff" android:endColor="#0000dd" android:type="linear" /> </shape> </item> </layer-list>
步骤2创build一个名为btn_background.xml的select器xml,并在drawable属性中传递layer_list xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/layer1"> </item> <item android:state_focused="true" android:drawable="@drawable/layer2"> </item> <item android:drawable="@drawable/layer3"> </item> </selector>
步骤3将select器xml设置为buttonandroid:background="@drawable/btn_background"
只要用你的layer-list
replaceshape
标签,一切都会正常工作。