package com.com.mr_wrong.CustomView; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.util.AttributeSet; import android.view.View; import com.example.mr_wrong.androidstudioproject.R; /** * Created by Mr_Wrong on 15/7/13. */ public class Canvas extends View { private Paint mPaint; private Bitmap mBitmap; private RectF mRect1; private Rect mRect2; private float[] pos; private Region mRegiona, mRegionb; public Canvas(Context context) { this(context, null); } public Canvas(Context context, AttributeSet attrs) { super(context, attrs); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setStyle(Paint.Style.STROKE); mPaint.setColor(Color.WHITE); mPaint.setStrokeWidth(2); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sky); mRect1 = new RectF(0, 0, 500, 500); // mRect1.union(250, 250, 750, 750); mRegiona = new Region(100, 100, 300, 300); mRegionb = new Region(200, 200, 400, 400); mRect2 = new Rect(); pos = new float[200]; for (int i = 0; i < 10; i += 10) { for (int j = 0; j < 10; j += 5) { pos[i * 2 + 0] = i + j; pos[i * 2 + 1] = 100; } } } @Override protected void onDraw(android.graphics.Canvas canvas) { int width = getWidth(); int height = getHeight(); //canvas.drawBitmap(mBitmap, mRect2, mRect1, mPaint); //mPaint.setTextSize(30); //canvas.drawPosText("hahhahaha",pos,mPaint); canvas.drawColor(Color.BLUE); canvas.save(); canvas.clipRegion(mRegiona); canvas.clipRegion(mRegionb, Region.Op.INTERSECT); canvas.drawColor(Color.RED); canvas.restore(); // canvas.clipRect(mRect1); // canvas.drawColor(Color.RED); canvas.drawRect(100, 100, 300, 300,mPaint); canvas.drawRect(200, 200, 400, 400,mPaint); } }