算是转载吧:参考: http://www.iteye.com/topic/440623
可以去看看
就说下自己的理解。
==================================
主要作用:
对cavans里面一部分内容分,进行平移、旋转、缩放,操作时 不会影响其他部分。大概酱~~
Paint mPaint = new Paint();
mPaint.setColor(Color.BLUE);
canvas.drawRect(100, 200, 200, 300, mPaint);
canvas.save();//保存cavans状态<span style="color:#808080;">,保不保存没差,保存的是默认状态。</span>
// 不管注释任意部分,都不会改变第一个蓝色的正方形,理解为旋转不会影响已经绘制部分?
canvas.rotate(45);//cavans旋转45度
mPaint.setColor(Color.RED);
canvas.drawRect(150, 10, 200, 60, mPaint);
canvas.restore();//cavans还原到保存的状态,不会影响以后绘制的内容,已绘制的状态不会改变
//至于这东西只调用一半会出什么问题。。什么问题都没有,理解为 cavans有默认的保存状态,恢复不会出问题
mPaint.setColor(Color.GREEN);
canvas.drawRect(200, 60, 300, 100, mPaint);
运行后效果:
注释后效果: