Android 自定义控件canvas- Layer图层

本文介绍了Android中的Layer图层概念,它在自定义控件绘制中扮演重要角色。通过canvas.saveLayerAlpha()和canvas.saveLayer()方法创建图层并管理它们的栈结构,实现复杂界面的绘制。saveLayerAlpha()允许指定透明度,而saveLayer()创建无透明度的图层。同时讨论了不同saveFlags的作用,如MATRIX_SAVE_FLAG、CLIP_SAVE_FLAG等,以及它们对图层的影响。
摘要由CSDN通过智能技术生成

Android layer图层是什么?

从字面上看android中的layer就是图层的意思,一般用于android中自定义控件的绘制中。从字面上意思看很像photoshop中的图层概念,也就是说大于1张图层以上重叠的图层组,从而可以创建一个复杂的图层,photoshop里面一张漂亮的画都是由多张图层来完成的。在android中layer是跟canvs配合使用,创建一个图层可以使用canvas.saveLayer()来创建,图层是基于栈结构进行管理的。

如图:
这里写图片描述

Android layer图层做什么?

Layer作用当然就是做复杂的界面,Android通过调用saveLayer()方法或者是saveLayerAlpha()方法将一个图层入栈,使用restore()方法、restoreToCount()方法将一个图层出栈。然而入栈的时候,后面所有的操作都发送在这个入栈的图层之上,而出栈的时候,则会把图像会知道上层的Canvas上。接下来通过代码来看看如何使用Layer。

   @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //图层一
        canvas.drawColor(Color.WHITE);//白色底色图层
        mPaint.setColor(Color.BLACK);
        canvas.drawCircle(200, 200, 100, mPaint);//黑色圆形

        //图层二
        canvas.saveLayerAlpha(0, 0, 400, 400, 127, Canvas.ALL_SAVE_FLAG);
        mPaint.setColor(Color.YELLOW);
        canvas.drawCircle(250, 250, 100, mPaint);//黄色圆形
        canvas
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值