Android样式开发之layer-list、level-list总结

layer-list将多个图片或效果按照顺序层叠起来,通常和selector、shape配合使用。

layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,后面的依次往上面叠放

 

layer-list.jpeg

如图可以实现Tab的背景效果,和带阴影的圆角矩形

对于TAB,是由一个红色的层加一个白色的层叠在一起显示的结果。

<?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>
                <color android:color="#E4007F" />
            </item>
            <!-- 白色背景 -->
            <item android:bottom="4dp" android:drawable="@android:color/white" />
        </layer-list>
    </item>

<!--默认时的效果--!>
    <item>
        <layer-list>
            <!-- 红色背景 -->
            <item>
                <color android:color="#E4007F" />
            </item>
            <!-- 白色背景 -->
            <item android:bottom="1dp" android:drawable="@android:color/white" />
        </layer-list>
    </item>


</selector>

对于带阴影的圆形矩阵是由一个灰色的层加上白色的层组成

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 灰色阴影 -->
    <item
        android:left="2dp"
        android:top="4dp">
        <shape>
            <solid android:color="@android:color/darker_gray" />
            <corners android:radius="10dp" />
        </shape>
    </item>
    <!-- 白色前景 -->
    <item
        android:bottom="4dp"
        android:right="2dp">
        <shape>
            <solid android:color="#FFFFFF" />
            <corners android:radius="10dp" />
        </shape>
    </item>
</layer-list>

注意事项:

  • layer-list可以作为根节点,也可以作为selector中item的子节点。、* layer-list可以添加多个item子节点,每个item子节点对应一个drawable资源,按照item从上到下的顺序叠加在一起,再通过设置每个item的偏移量就可以看到阴影等效果了。
  • layer-list的item可以通过下面四个属性设置偏移量:
    • android:top 顶部的偏移量
    • android:bottom 底部的偏移量
    • android:left 左边的偏移量
    • android:right 右边的偏移量
      这四个偏移量和控件的margin设置差不多,都是外间距的效果。如何不设置偏移量,前面的图层就完全挡住了后面的图层,从而也看不到后面的图层效果了

level-list

在Android开发中,有时候需要对一个ImageView设置很多不同图片以表示某种应用状态,比如,典型的是手机的信号强度从强到弱有多种状态图;wifi有解锁和未解锁状态,解锁和未解锁状态的图标也是很多种。如果每次都一一的通过ImageView设置图片的src来达到这一目的,实在是太过于繁琐,且维护和管理起来不便。因此,引入ImageView的setImageLevel和level-list实现这一目的
res/drawable下新建xml

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:maxLevel="0" android:drawable="@drawable/p0" />
    <item android:maxLevel="1" android:drawable="@drawable/p1" />
    <item android:maxLevel="2" android:drawable="@drawable/p2" />
    <item android:maxLevel="3" android:drawable="@drawable/p3" />
    <item android:maxLevel="4" android:drawable="@drawable/p3" />
</level-list>

ImageView image=(ImageView)findViewById(R.id.image);  
        image.setImageResource(R.drawable.xxxx);  
        image.setImageLevel(3);  



作者:芒果味的你呀
链接:https://www.jianshu.com/p/a74943a359b3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值