平时设置button点击效果的实现可以用selector,但是有时候点击效果有点复杂,需要实现边框等,这时可以考虑把layer-list和selector糅合到一起,本来打算直接在selector下面的item里面直接添加layer-list,但是经测试,不能用,查了资料,找到了一种方法,下面这种方法可以实现:
第一步:首先你要创建几个不同状态的button效果,放到drawable文件夹下面,比如layer1.xm,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>
第二步:创建一个selector,这里命名为btn_background,在drawable属性里面引入上一步的layer文件:
<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>
第三部:在button的background属性里面设置:
android:background="@drawable/btn_background"