canvas中save和restore
来源:互联网 发布:java源代码文件调试 编辑:程序博客网 时间:2024/06/11 02:24
save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。 restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。
对canvas中特定元素的旋转平移等操作实际上是对整个画布进行了操作,所以如果不对canvas进行save以及restore,那么每一次绘图都会在上一次的基础上进行操作,最后导致错位。比如说你相对于起始点每次30度递增旋转,30,60,90.如果不使用save 以及 restore 就会变成30, 90, 150,每一次在前一次基础上进行了旋转。save是入栈,restore是出栈。
下面以绘制一条旋转的线段为例:
第一次绘制没有使用save,restore,第一次绘制时画布旋转30度,然后按照坐标绘制直线,第二次绘制在第一次基础上继续绘制,旋转30度,实际上相对于起点,旋转了60. 所以画出来两条直线不在一条指线上。
第二次绘制加入save和restore, 再第一次绘制后,resore到起始状态,也就是现在画布又回到了0度位置,而不是30度,所以第二次绘制是从0度开始绘制,绘制出来应该和第一次的直线平行。
0 0
- canvas中save和restore
- Canvas:save()和restore()
- canvas.save();和canvas.restore();
- Android中canvas.save()和canvas.restore()的使用
- android画布中canvas.save()和canvas.restore() 作用
- Android中canvas.save()和canvas.restore()的使用
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- Canvas的save和restore
- 基本数据类型
- Android基础之startActivityForResult详解
- 总结-树链剖分
- 窗口与winmain-win32与C++入门笔记(2)
- java集合类详解
- canvas中save和restore
- duilib bkimage属性说明
- Android支持多国语言
- 一个简单实用的程序员鸡汤
- android ScrollView嵌套ListView adapter的notifyDataSetChanged无效
- GDAL——生成等值线
- 【ADF启动start server instance失败】
- 原生ajax POST,解决Undefined index
- ApplicationContext