Android开发小点滴之selector、layer-list

简单给大家介绍selector与layer-list

先看selector (背景选择器)

一. 用法:


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true" android:color="#cccccc"></item>
    <item android:color="@color/white"></item>

</selector>


selector只有一个子元素item,我们定义两种类型的item,一种状态为按下时,我们把颜色设置为浅灰色,否则使用另一个item的白色颜色.

运用场景:可点击的按钮,点击时改变颜色.同理,可应用到资源图片,如下:


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/back_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/back"></item>

</selector>


二. selector 

通过一可以实现简单的点击改变颜色和图片,同时,如果我们还需要改变按钮的背景颜色,边框颜色,改变为圆角,如下:


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape android:shape="rectangle">
            <corners android:radius="4dp" />

            <solid android:color="#dddddd" />

            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>
    <item android:state_pressed="false"><shape android:shape="rectangle">
            <stroke android:width="2dp" android:color="#cccccc" />

            <solid android:color="#FFFFFFFF" />

            <corners android:radius="4dp" />

            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>

</selector>




<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="false"><shape>
            <corners android:radius="4dp" />

            <solid android:color="@color/main_color" />
        </shape></item>
    <item android:state_pressed="true"><shape>
            <corners android:radius="4dp" />

            <solid android:color="@color/main_color_deepened" />
        </shape></item>

</selector>




上面,我们还是定义两种item,但在item里面增加了一些属性,如corners属性,使之变为圆角,也可设置padding,使之更美观.


三. layer-list

item中常用layer-list标签

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
    <item android:state_selected="true">
        <layer-list>	
            <item android:left="-4dp" android:right="-4dp" android:top="-4dp">
                <shape android:shape="rectangle">
                    <stroke android:width="4dp" android:color="@color/book_area_golden_background" />
                    <solid android:color="@color/white"/>
                </shape>
	    </item>
        </layer-list>     
    </item>
    
    <item android:state_selected="false"><shape android:shape="rectangle"></shape></item>

</selector>


此外:还需要设置代码,在按钮监听时,设置其按钮为选中状态.button.setSelected(true);




效果为选择时下方有带颜色的下划线,默认什么效果也没有.

如需设置上下左右边框都有带颜色,可将ltem标签中上下左右设置dp删除.

效果图为




 这个主要看大家要实现的效果,万变不离其宗,再复杂的效果也通过selector实现,希望大家喜欢也可以动手去设置.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值