Android使用layer-list和selector

平时设置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"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值