LayerDrawable

     1.在Android项目开发的时候,经常看到很漂亮的UI界面,比如,当你点击一张图片被选中的时候,覆上一张透明的图片。表示被选中,区别与那些没有被选中的。这种是如何实现的呢?答案是LayerDrawable的使用出现的效果。下面是LayerDrawable的总结,若有不正确的地方,请大家指正。
     2.简单的来说,LayerDrawable继承与Drawable,Drawable就是一个可画的对象,可能是一张位图BitmapDrawable,也可能是一个图形ShapeDrawable,还有可能是一个图层LayerDrawable。根据不同的画图需求创建相应的可画对象。

LayerDrawable系统将会按这些Drawable对象的数组顺序来绘制它们,索引最大的Drawable对象将会被绘制在最上面,定义LayerDrawable对象的XML文件的根元素layer-list ,该元素可以包含多个item元素。

    3.代码实现如下:

  方法一:XML方式:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap android:src="@mipmap/ic_launcher"
            android:gravity="center" />
    </item>
    <item android:top="10dp" android:left="10dp">
        <bitmap android:src="@mipmap/ic_launcher"
            android:gravity="center" />
    </item>
    <item android:top="20dp" android:left="20dp">
        <bitmap android:src="@mipmap/ic_launcher"
            android:gravity="center" />
    </item>
</layer-list>
方法二:代码方式:
   
public class MainActivity extends Activity {
    private ImageView mView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mView = (ImageView) findViewById(R.id.imageView1);
        // 创建资源对象
        Resources resources = getResources();
        // 创建数组对象
        Drawable[] layers = new Drawable[2];
        layers[0] = resources.getDrawable(R.drawable.ic_01);
        layers[1] = resources.getDrawable(R.drawable.ic_02);
        LayerDrawable layerDrawable = new LayerDrawable(layers);
        // 设置背景
        mView.setImageDrawable(layerDrawable);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值