按照课本中的理解
save();左右是用于保存当前画布的状态。
restore();作用是恢复上次保存的画布状态。下面的程序的作用是“使用了这两个方面,使得旋转红色方块的时候,保证蓝色方块不受影响。
” @Override public void surfaceCreated(SurfaceHolder holder) { canvas = mHolder.lockCanvas(); Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(100, 200, 200, 300, mPaint); canvas.save(); canvas.rotate(45); mPaint.setColor(Color.RED); canvas.drawRect(150, 10, 200, 60, mPaint); canvas.restore(); mHolder.unlockCanvasAndPost(canvas); }我不是很明白
用了这个canvas.restore();
方法后,不是恢复到上次保存的画布状态吗?
那应该只有蓝色方块呀,而不应该出现红色方块呀?请大侠指点哦,谢谢
save();左右是用于保存当前画布的状态。
restore();作用是恢复上次保存的画布状态。下面的程序的作用是“使用了这两个方面,使得旋转红色方块的时候,保证蓝色方块不受影响。
” @Override public void surfaceCreated(SurfaceHolder holder) { canvas = mHolder.lockCanvas(); Paint mPaint = new Paint(); mPaint.setColor(Color.BLUE); canvas.drawRect(100, 200, 200, 300, mPaint); canvas.save(); canvas.rotate(45); mPaint.setColor(Color.RED); canvas.drawRect(150, 10, 200, 60, mPaint); canvas.restore(); mHolder.unlockCanvasAndPost(canvas); }我不是很明白
用了这个canvas.restore();
方法后,不是恢复到上次保存的画布状态吗?
那应该只有蓝色方块呀,而不应该出现红色方块呀?请大侠指点哦,谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货