zoukankan      html  css  js  c++  java
  • android学习6——canvas的save,restore作用

    先看如下代码

    public class SaveRestoreActivity extends Activity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(new SaveRestoreView(this));
        }
    }
    
    public class SaveRestoreView extends View {
        public SaveRestoreView(Context context) {
            super(context);
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Paint bgPaint = new Paint();
            bgPaint.setColor(Color.RED);
            int px = 100;
            int py = 100;
            canvas.drawRect(0, 0, px, py, bgPaint);
    
    //        canvas.save();
            canvas.rotate(45);
            canvas.drawRect(px, py, px + 100, py + 100, bgPaint);
    //        canvas.restore();
    
            canvas.drawRect(px + 100, py + 100, px + 200, py + 200, bgPaint);
        }
    }
    

    画一个矩形,然后将坐标系转动45度,再画一个矩形.发现矩形旋转了45度.再画一个矩形.矩形仍转动了45度.效果如下图所示:

    将注释点的save,resotre打开,效果如下图所示:

    save,restore确保对坐标系的改动只发生在save,restore之间的代码.

  • 相关阅读:
    Android Canvas save() restore()
    Android Custom View
    Android Canvas drawArc()
    每日一记--2014.9.15
    每日一记--2014.9.14
    每日一记--2014.9.13
    每日一记--2014.9.12
    每天一记--2014.9.11
    每日一记,今天开始
    java中的Iterator和Iterable
  • 原文地址:https://www.cnblogs.com/zhouyang209117/p/5085404.html
Copyright © 2011-2022 走看看