信心比金钱更重要!

目标明确==>>>计划跟踪==>>>行动执行!
posts - 41, comments - 3, trackbacks - 0, articles - 2
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

save() 和 restore()

Posted on 2012-03-31 14:59 luofeng 阅读(151) 评论(0)  编辑 收藏 引用 所属分类: Android基础


在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。

onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。

在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?

❑ save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。

❑ restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。

save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比save多,会引发Error。


save和restore之间,往往夹杂的是对Canvas的特殊操作。canvas可能会做旋转,平移,切割等动作,然后为了让这些动作只在特定的一个程序段产生作用,不会影响下面你需要继续画的物体,


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理