Code example for Canvas

Methods: clipRect, drawRGB, drawRect, getClipBounds, quickReject, restore, save, scale, translate

0
            mPaint = new Paint();
        } 
 
        @Override 
        public void dispatchDraw(Canvas canvas) {
            canvas.drawRGB(255, 255, 255);
 
            mPaint.setColor(0xffff0000);
            canvas.drawRect(200.0f, 0.0f, 220.0f, 20.0f, mPaint);
 
            canvas.save();
            canvas.clipRect(20.0f, 0.0f, 40.0f, 20.0f);
            Log.d(LOG_TAG, "clipRect = " + canvas.getClipBounds());
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(100.0f, 100.0f, 110.0f, 110.0f,
                    Canvas.EdgeType.BW));
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(25.0f, 5.0f, 30.0f, 10.0f,
                    Canvas.EdgeType.BW));
            canvas.restore();
             
            canvas.save();
            canvas.scale(2.0f, 2.0f);
            canvas.clipRect(20.0f, 0.0f, 40.0f, 20.0f);
            Log.d(LOG_TAG, "clipRect = " + canvas.getClipBounds());
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(50.0f, 50.0f, 60.0f, 60.0f,
                    Canvas.EdgeType.BW));
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(25.0f, 5.0f, 30.0f, 10.0f,
                    Canvas.EdgeType.BW));
            canvas.restore();
 
            canvas.save();
            canvas.translate(20.0f, 20.0f);
            canvas.clipRect(20.0f, 0.0f, 40.0f, 20.0f);
            Log.d(LOG_TAG, "clipRect = " + canvas.getClipBounds());
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(80.0f, 80.0f, 90.0f, 90.0f,
                    Canvas.EdgeType.BW));
            Log.d(LOG_TAG, "rejected = " + canvas.quickReject(25.0f, 5.0f, 30.0f, 10.0f,
                    Canvas.EdgeType.BW));
            canvas.restore();
 
            canvas.save();
            canvas.scale(2.0f, 2.0f);            
            canvas.clipRect(20.0f, 0.0f, 40.0f, 20.0f);
 
            mPaint.setColor(0xff00ff00);
            canvas.drawRect(0.0f, 0.0f, 20.0f, 20.0f, mPaint);
             
            mPaint.setColor(0xff0000ff);
            canvas.drawRect(20.0f, 0.0f, 40.0f, 20.0f, mPaint);
             
            canvas.restore();
 
            final int restoreTo = canvas.save();
            canvas.saveLayerAlpha(0.0f, 100.0f, getWidth(), 150.0f, 127,
                    Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | Canvas.CLIP_TO_LAYER_SAVE_FLAG);
            mPaint.setColor(0xff0000ff);
            canvas.drawRect(0.0f, 100.0f, 40.0f, 150.0f, mPaint);
            mPaint.setColor(0xff00ffff);