zoukankan      html  css  js  c++  java
  • Canvas的flag具体的含义

    示例代码:

    package com.loaderman.customviewdemo;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MATRIX_SAVE_FLAG_View extends View {
        private Paint mPaint;
        public MATRIX_SAVE_FLAG_View(Context context, AttributeSet attrs) {
            super(context, attrs);
            setLayerType(LAYER_TYPE_SOFTWARE,null);
            mPaint = new Paint();
    
            mPaint.setColor(Color.GRAY);
        }
    
        @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    
            canvas.save(Canvas.MATRIX_SAVE_FLAG);
            canvas.rotate(40);
            canvas.drawRect(100,0,200,100,mPaint);
            canvas.restore();
    
            mPaint.setColor(Color.BLACK);
            canvas.drawRect(100,0,200,100,mPaint);
    
    //    canvas.save(Canvas.MATRIX_SAVE_FLAG);
    //    canvas.clipRect(100,0,200,100);
    //    canvas.drawColor(Color.GRAY);
    //    canvas.restore();
    //
    //    canvas.drawColor(Color.BLACK);
    }
    }

    package com.loaderman.customviewdemo;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    
    public class CLIP_SAVE_FLAG_View extends View {
        private Paint mPaint;
        public CLIP_SAVE_FLAG_View(Context context, AttributeSet attrs) {
            super(context, attrs);
            setLayerType(LAYER_TYPE_SOFTWARE,null);
            mPaint = new Paint();
    
        }
    
        @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    
    //        canvas.drawColor(Color.RED);
    //        canvas.save(Canvas.CLIP_SAVE_FLAG);
    //        canvas.clipRect(100,0,200,100);
    //        canvas.restore();
    //
    //        canvas.drawColor(Color.YELLOW);
    
        mPaint.setColor(Color.GRAY);
        canvas.drawRect(100,0,200,100,mPaint);
    
        canvas.save(Canvas.CLIP_SAVE_FLAG);
        canvas.rotate(40);
        canvas.restore();
    
        mPaint.setColor(Color.BLACK);
        canvas.drawRect(100,0,200,100,mPaint);
    }
    }

    package com.loaderman.customviewdemo;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    
    public class ALPHA_COLOR_FALG_VIEW extends View {
        private Paint mPaint;
        public ALPHA_COLOR_FALG_VIEW(Context context, AttributeSet attrs) {
            super(context, attrs);
            setLayerType(View.LAYER_TYPE_SOFTWARE, null);
            mPaint = new Paint();
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
    //        canvas.drawColor(Color.GRAY);
    //
    //        canvas.saveLayer(0,0,300,300,mPaint,Canvas.HAS_ALPHA_LAYER_SAVE_FLAG);
    //        mPaint.setColor(Color.BLACK);
    //        canvas.drawRect(100,100,200,200,mPaint);
    //        canvas.restore();
    
    
            canvas.drawColor(Color.GRAY);
    
            canvas.saveLayer(0,0,300,300,mPaint,Canvas.MATRIX_SAVE_FLAG);
            canvas.rotate(40);
            mPaint.setColor(Color.BLACK);
            canvas.drawRect(100, 100, 200, 200, mPaint);
            canvas.restore();
        }
    }

    package com.loaderman.customviewdemo;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    
    public class CLIP_SAVE_FLAG_View extends View {
        private Paint mPaint;
        public CLIP_SAVE_FLAG_View(Context context, AttributeSet attrs) {
            super(context, attrs);
            setLayerType(LAYER_TYPE_SOFTWARE,null);
            mPaint = new Paint();
    
        }
    
        @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    
    //        canvas.drawColor(Color.RED);
    //        canvas.save(Canvas.CLIP_SAVE_FLAG);
    //        canvas.clipRect(100,0,200,100);
    //        canvas.restore();
    //
    //        canvas.drawColor(Color.YELLOW);
    
        mPaint.setColor(Color.GRAY);
        canvas.drawRect(100,0,200,100,mPaint);
    
        canvas.save(Canvas.CLIP_SAVE_FLAG);
        canvas.rotate(40);
        canvas.restore();
    
        mPaint.setColor(Color.BLACK);
        canvas.drawRect(100,0,200,100,mPaint);
    }
    }

  • 相关阅读:
    [ZJOI2007]仓库建设(斜率dp优化)
    [HNOI2008]玩具装箱toy(斜率优化dp)
    2019牛客暑期多校训练营(第十场)F-Popping Balloons
    2019牛客暑期多校训练营(第十场)B-Coffee Chicken
    子集的生成—二进制枚举
    2019牛客暑期多校训练营(第九场)D-Knapsack Cryptosystem(思维+子集和)
    2019牛客暑期多校训练营(第九场) E-All men are brothers(并查集+组合数学)
    字符串的最小表示法
    2019牛客暑期多校训练营(第八场)
    [HDU4734] 不要62(数位dp入门)
  • 原文地址:https://www.cnblogs.com/loaderman/p/10219514.html
Copyright © 2011-2022 走看看