Android Canvas save和restoreToCount
2024-08-24 20:21:16
@Override
public void draw(Canvas canvas) {
if (mDrawable!=null) {
int sc=canvas.save();
if (mAnimation!=null) {
mAnimation.getTransformation(
AnimationUtils.currentAnimationTimeMillis(),
mTransformation);
canvas.concat(mTransformation.getMatrix());
}
mDrawable.draw(canvas);
canvas.restoreToCount(sc);
}
}
canvas.save()和canvas.restoreToCount(sc);是用来保存和回复Canvas的状态(Maxtrix等属性),因为我们需要修改Canvas的Matrix属性,canvas.concat方法都会和当前Canvas的Matrix进行矩阵运算,如果我们不保存之前的Matrix属性,每次都会跟上次矩阵运算的结果相乘,对应本例来说,每次平移的距离会越来越大。
转:http://blog.csdn.net/gaomatrix/article/details/6525240
最新文章
- VQuery选择器
- setSupportActionBar(toolbar)导致程序崩溃闪退
- Linux Purify命令
- linux c
- sqlserver2008安装教程
- PHP高级特性一之正则表达式用法
- ListToDataTable
- Js中的window.parent ,window.top,window.self详解
- 【转】火火火火火!看HomeKit如何改变物联网和智能家居?
- Sass的控制命令(循环)
- 剑指offer-面试题14.调整数组顺序使奇数位于偶数的前面
- Hierarchical Storage structure
- Openjudge-计算概论(A)-计算三角形面积
- uva12545
- 哈密顿绕行世界问题、n皇后问题
- A - ACboy needs your help again!
- mysql explain(转)
- 工具-CrashMonkey4IOS,Monkey测试方案
- Elasticsearch 自定义映射
- kali linux下几个更新命令的区分
热门文章
- Oracle - 单表查询相关
- Vue学习笔记【3】——Vue指令之v-bind的三种用法
- QT之QCustomPlot(二)
- PHP ftp_fput() 函数
- kubernetes(k8s)集群安全机制RBAC
- 树————N叉树的层序遍历
- Delphi实现程序只运行一次并激活已打开的程序
- 51nod-1515 明辨是非——并查集
- 关于Python中函数的使用
- [已解决]报错:ValueError: Expected 2D array, got scalar array instead