image1 = (ImageView) findViewById(R.id.image1);
Drawable drawable = image1.getDrawable();
Bitmap bitmap = createFramedPhoto(400, 400, drawable, 20);
image1.setImageBitmap(bitmap);
/**
*
* @param x
* 图像的宽度
*
* @param y
* 图像的高度
*
* @param imageDrawable
* 源图片
*
* @param outerRadiusRat
* 圆角的大小
* @return 圆角图片
*/
Bitmap createFramedPhoto(int x, int y, Drawable imageDrawable,
float outerRadiusRat) {
// 新建一个新的输出图片
Bitmap output = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
// 新建一个矩形
RectF outerRect = new RectF(0, 0, x, y);
// 产生一个圆角矩形
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
canvas.drawRoundRect(outerRect, outerRadiusRat, outerRadiusRat, paint);
// 将源图片绘制到这个圆角矩形上
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
imageDrawable.setBounds(0, 0, x, y);
canvas.saveLayer(outerRect, paint, Canvas.ALL_SAVE_FLAG);
imageDrawable.draw(canvas);
canvas.restore();
return output;
}