package com.wuxiaolong.androidsamples.paintcanvas; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.RectF; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.wuxiaolong.androidsamples.R; public class PaintCanvasActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_paint_canvas); } private void colorFilterTest() { Paint paint = new Paint(); paint.setAntiAlias(true); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.logo); Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(outBitmap); // RectF rectF = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight()); // canvas.drawRoundRect(rectF, 80, 80, paint); canvas.drawBitmap(outBitmap, 0, 0, paint); } private void initRoundRectImage() { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.dog); Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(outBitmap); Paint paint = new Paint(); paint.setAntiAlias(true); RectF rectF = new RectF(0, 0, bitmap.getWidth(), bitmap.getHeight()); canvas.drawRoundRect(rectF, 80, 80, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, 0, 0, paint); } }