博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Canvas saveLayerAlpha使用
阅读量:6909 次
发布时间:2019-06-27

本文共 1802 字,大约阅读时间需要 6 分钟。

Canvas.saveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags):

本身和save方法差不多,但是它单独分配了一个画布用于绘制图层。它定义了一个画布区域(可设置透明度),此方法之后的所有绘制都在此区域中绘制,直到调用canvas.restore()方法。例如:在调用saveLayerAlpha方法之前绘制了一个“圆形”,在调用saveLayerAlpha方法之后绘制了一个“圆形”此时这两个圆形并不在同一个图层。下面给出一个例子以及样图来说明这个问题。

实例代码:

package cn.yw.lib.graphics;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Bundle;import android.view.View;public class LayerActivity extends Activity{    private LayerView view;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        view = new LayerView(this);        setContentView(view);    }    /**     * 测试图层     * @author yw-tony     *     */    class LayerView extends View{        private Paint paint;        private static final int LAYER_FLAGS = Canvas.MATRIX_SAVE_FLAG                | Canvas.CLIP_SAVE_FLAG | Canvas.HAS_ALPHA_LAYER_SAVE_FLAG                | Canvas.FULL_COLOR_LAYER_SAVE_FLAG                | Canvas.CLIP_TO_LAYER_SAVE_FLAG;        public LayerView(Context context) {            super(context);            paint = new Paint();            paint.setAntiAlias(true);        }                @Override        protected void onDraw(Canvas canvas) {            super.onDraw(canvas);            //清屏操作            canvas.drawColor(Color.GRAY);            //画布向右下移动50像素            canvas.translate(50, 50);            paint.setColor(Color.RED);            canvas.drawCircle(50, 50, 25, paint);            canvas.saveLayerAlpha(0, 0, 200, 200, 0x88, LAYER_FLAGS);            paint.setColor(Color.GREEN);            canvas.drawCircle(60, 60, 25, paint);            canvas.restore();        }    }}

样图:

 

转载地址:http://hxgdl.baihongyu.com/

你可能感兴趣的文章
掌阅公布数字阅读报告:00后成第二大阅读群体
查看>>
冬季风暴席卷美国致航班取消车祸频发 20万人断电
查看>>
民航局正式启动北斗星基增强系统民航应用验证评估工作
查看>>
北京新机场 严打无人机“黑飞”
查看>>
8点1氪|阿里巴巴第三财季营收破千亿;传滴滴拟裁员25%;饿了么口碑超30亿美元融资已逐步到位...
查看>>
程序员用代码将近200个小时,为自己DIY一个手机音乐播放器
查看>>
CentOS 7安装TCP BBR拥塞算法
查看>>
JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】...
查看>>
微软洪小文:真正的AI不应基于大数据,而需从小数据、零数据着手
查看>>
koroFileHeader 非常实用的Vscode 插件[用于添加文件头部注释]
查看>>
java多线程的杂谈
查看>>
BCH支付服务商Bitek为哥伦比亚商家提供比索兑换服务
查看>>
Centos6.8安装node生产环境
查看>>
这次不会说我的正则教程没写全了吧??
查看>>
LeetCode16.最接近的三数之和 JavaScript
查看>>
2017 Material design 第三章第二节《Icons》
查看>>
你凭什么做好互联网?
查看>>
【火炉炼AI】机器学习014-用SVM构建非线性分类模型
查看>>
Java线程的CPU时间片
查看>>
《webpack文档》学习笔记
查看>>