按照课本中的理解
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();
方法后,不是恢复到上次保存的画布状态吗?
那应该只有蓝色方块呀,而不应该出现红色方块呀?请大侠指点哦,谢谢

解决方案 »

  1.   

    我也不明白这个问题,不过可以去看看SDK的文档
      

  2.   

    restore 后面是不是有SHOW啊什么方法把恢复的内容显示出来的,纯臆测。
      

  3.   

    整体效果是保存canvas以前的操作并加上save()与restore()之间的操作,然后一并再更新在画布上..save()与restore()之间的操作不会对以前的绘制的图形产生影响..