在建立新的控件或修改现有的控件时,咱们都会涉及到重写控件或View的onDraw方法。canvas
onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。spa
在onDraw方法里,咱们常常会看到调用save和restore方法,它们究竟是干什么用的呢?rest
❑ save:用来保存Canvas的状态。save以后,能够调用Canvas的平移、放缩、旋转、错切、裁剪等操做。对象
❑ restore:用来恢复Canvas以前保存的状态。防止save后对Canvas执行的操做对后续的绘制有影响。blog
save和restore要配对使用(restore能够比save少,但不能多),若是restore调用次数比save多,会引起Error。游戏
在读Android SDK里面的samples里面游戏的时候,不少时候都看到对canvas的save()和restore()运用。class