@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

最新文章

  1. VQuery选择器
  2. setSupportActionBar(toolbar)导致程序崩溃闪退
  3. Linux Purify命令
  4. linux c
  5. sqlserver2008安装教程
  6. PHP高级特性一之正则表达式用法
  7. ListToDataTable
  8. Js中的window.parent ,window.top,window.self详解
  9. 【转】火火火火火!看HomeKit如何改变物联网和智能家居?
  10. Sass的控制命令(循环)
  11. 剑指offer-面试题14.调整数组顺序使奇数位于偶数的前面
  12. Hierarchical Storage structure
  13. Openjudge-计算概论(A)-计算三角形面积
  14. uva12545
  15. 哈密顿绕行世界问题、n皇后问题
  16. A - ACboy needs your help again!
  17. mysql explain(转)
  18. 工具-CrashMonkey4IOS,Monkey测试方案
  19. Elasticsearch 自定义映射
  20. kali linux下几个更新命令的区分

热门文章

  1. Oracle - 单表查询相关
  2. Vue学习笔记【3】——Vue指令之v-bind的三种用法
  3. QT之QCustomPlot(二)
  4. PHP ftp_fput() 函数
  5. kubernetes(k8s)集群安全机制RBAC
  6. 树————N叉树的层序遍历
  7. Delphi实现程序只运行一次并激活已打开的程序
  8. 51nod-1515 明辨是非——并查集
  9. 关于Python中函数的使用
  10. [已解决]报错:ValueError: Expected 2D array, got scalar array instead