Android样式之layer-list

1 概述

layer-list可以将多个drawable按照顺序层叠在一起显示。layer-list可以作为根节点,也可以作为selector中item的子节点。layer-list可以添加多个item子节点,每个item子节点对应一个drawable资源,按照item从上到下的顺序叠加在一起,再通过设置每个item的偏移量就可以看到阴影等效果了.

layer-list对应的实体类:LayerDrawable

2 layer-list的item偏移量

偏移量和控件的margin设置差不多,都是外间距的效果。如何不设置偏移量,前面的图层就完全挡住了后面的图层,从而也看不到后面的图层效果了.

android:top 顶部的偏移量
android:bottom 底部的偏移量
android:left 左边的偏移量
android:right 右边的偏移量

偏移量设为负值时,偏移超出的部分会被截掉而看不到。

3 item的用法

根节点不同时,可设置的属性是会不同的
    比如selector下,可以设置一些状态属性,而在layer-list下,可以设置偏移量;
就算父节点同样是selector,放在drawable目录和放在color目录下可用的属性也会不同
    比如drawable目录下可用的属性为android:drawable,
    在color目录下可用的属性为android:color;
item的子节点可以为任何类型的drawable类标签
    包括shape、color、layer-list,selector,bitmap、clipscale、inset、
    transition、rotate、animated-rotate、lever-list等等。

注:item的顺序是最上面的会被下面的item覆盖

4 代码实现

Resources r = getResources();  
Drawable[] layers = new Drawable[2];  
layers[0] = r.getDrawable(R.drawable.pic1);   
layers[1] = r.getDrawable(R.drawable.pic2);   
LayerDrawable layerDrawable = new LayerDrawable(layers);   
((ImageView) findViewById(R.id.imageview)).setImageDrawable(layerDrawable);

5 使用场景

背景图片直接加阴影效果
实现层叠效果

6源码参考

地址见github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值