Canvas 基本用法学习笔记
来源:互联网 发布:java输出斐波那契数列 编辑:程序博客网 时间:2024/05/31 19:00
Canvas
直面意思是画布,其实是分装的一个工具类
一个Canvas类对象有四大基本要素
1、一个是用来保存像素的bitmap ----- 画板
2、一个Canvas在Bitmap上进行绘制操作 ---- 画布或者画纸(Layer---saveLayer操作时,新建一个透明的画布图层)
3、绘制的东西
4、绘制的画笔Paint
把我们的Canvas比喻成一块画板,为什么?
今天的学习目标:
1、了解Canvas可以用来画些什么东西
除了常用的形状之外
有以下几种方式:----具体含义 看图
DIFFERENCE(0),
INTERSECT(1),
UNION(2),
XOR(3),
REVERSE_DIFFERENCE(4),
REPLACE(5);
2、Canvas的变换技巧----了解Canvas里面的坐标系
Canvas里面牵扯两种坐标系:Canvas自己的坐标系、绘图坐标系
Canvas的坐标系,
它就在View的左上角,做坐标原点往右是X轴正半轴,往下是Y轴的正半轴,有且只有一个,唯一不变
绘图坐标系
它不是唯一不变的,它与Canvas的Matrix有关系,当Matrix发生改变的时候,绘图坐标系对应的进行改变,
同时这个过程是不可逆的(save和restore方法来保存和还原变化操作)
Matrix又是通过我们设置translate、rotate、scale、skew来进行改变的
3、Canvas的状态保存---状态栈、Layer栈
状态栈--save、 restore方法来保存和还原变换操作Matrix以及Clip剪裁
也可以通过restoretoCount直接还原到对应栈的保存状态
Layer栈--- saveLayer的时候都会新建一个透明的图层(离屏Bitmap-离屏缓冲),并且会将saveLayer之前的一些Canvas操作延续过来
后续的绘图操作都在新建的layer上面进行
当我们调用restore 或者 restoreToCount 时 更新到对应的图层和画布上
直面意思是画布,其实是分装的一个工具类
一个Canvas类对象有四大基本要素
1、一个是用来保存像素的bitmap ----- 画板
2、一个Canvas在Bitmap上进行绘制操作 ---- 画布或者画纸(Layer---saveLayer操作时,新建一个透明的画布图层)
3、绘制的东西
4、绘制的画笔Paint
把我们的Canvas比喻成一块画板,为什么?
今天的学习目标:
1、了解Canvas可以用来画些什么东西
除了常用的形状之外
画Region --- 区域的意思,它表示的Canvas图层上的一块封闭的区域
//创建一块矩形的区域paint.setColor(Color.RED);paint.setStrokeWidth(2);paint.setStyle(Paint.Style.STROKE);Rect rect = new Rect(100,100,500,600);Region region = new Region(rect);Rect rect5 = new Rect(0,200,900,500);Region region1 = new Region(rect5);region1.op(region, Region.Op.XOR);RegionIterator regionIterator = new RegionIterator(region1);Rect rect1 = new Rect();while (regionIterator.next(rect1)){ canvas.drawRect(rect1,paint);}
有以下几种方式:----具体含义 看图
DIFFERENCE(0),
INTERSECT(1),
UNION(2),
XOR(3),
REVERSE_DIFFERENCE(4),
REPLACE(5);
2、Canvas的变换技巧----了解Canvas里面的坐标系
Canvas里面牵扯两种坐标系:Canvas自己的坐标系、绘图坐标系
Canvas的坐标系,
它就在View的左上角,做坐标原点往右是X轴正半轴,往下是Y轴的正半轴,有且只有一个,唯一不变
绘图坐标系
它不是唯一不变的,它与Canvas的Matrix有关系,当Matrix发生改变的时候,绘图坐标系对应的进行改变,
同时这个过程是不可逆的(save和restore方法来保存和还原变化操作)
Matrix又是通过我们设置translate、rotate、scale、skew来进行改变的
3、Canvas的状态保存---状态栈、Layer栈
状态栈--save、 restore方法来保存和还原变换操作Matrix以及Clip剪裁
也可以通过restoretoCount直接还原到对应栈的保存状态
Layer栈--- saveLayer的时候都会新建一个透明的图层(离屏Bitmap-离屏缓冲),并且会将saveLayer之前的一些Canvas操作延续过来
后续的绘图操作都在新建的layer上面进行
当我们调用restore 或者 restoreToCount 时 更新到对应的图层和画布上
阅读全文
0 0
- Canvas 基本用法学习笔记
- 学习:Canvas基本用法
- canvas的基本用法
- Canvas基本用法
- Canvas 基本用法
- Canvas的基本用法
- Canvas绘图基本用法
- 学习笔记--Git 基本用法
- Canvas教程 Canvas tutorial之基本用法
- 【JS】js学习笔记之canvas基本绘图
- 说说 canvas 的基本用法
- PHPUnit学习笔记(二)PHPUnit基本用法
- Gnu Make学习笔记1:基本用法
- android 学习笔记 线程的基本用法
- android 学习笔记 服务的基本用法
- 【mysql学习笔记】-检索数据基本用法
- Android学习笔记-Service 基本用法
- Android学习笔记----SQLite数据库基本用法
- python入门(坐标相加)
- Linux内核信号
- 正则表达式
- dyld`__abort_with_payload: 错误
- error: CreateProcess: No such file or directory
- Canvas 基本用法学习笔记
- 线程池,这一篇或许就够了
- 18多态
- 大数巨之某种序列
- Pointer_6
- 200、301、403、304、500等HTTP状态代表什么意思?
- Android开发:创建自定义视图–创建一个View类
- 使用poi操作模板文件重新生成新的word表单文件
- Android截屏与WebView长图分享经验总结