package com.sqisland.android.graphics_demo; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.os.Bundle; import android.widget.ImageView; public class ClipRectActivity extends Activity { private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private RectF rect = new RectF(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_clip_rect); ImageView imageView = (ImageView) findViewById(R.id.image); int width = getResources().getDimensionPixelSize(R.dimen.clip_rect_width); int height = getResources().getDimensionPixelSize(R.dimen.clip_rect_height); Bitmap bitmap = createClipRect(width, height); imageView.setImageBitmap(bitmap); } // Assumes width > height private Bitmap createClipRect(int width, int height) { paint.setColor(Color.GREEN); Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); float radius = height / 2; canvas.save(); canvas.clipRect(0, 0, width, height); rect.set(0, 0, width + height, height); canvas.drawRoundRect(rect, radius, radius, paint); canvas.restore(); return bitmap; } }