直接上代码,这是一个模仿pinterest的函数,当然可以绘制自己想要的矩形
private Bitmap createPininterestPhoto(int x, int y, Bitmap image, float radius)
{
//根据源文件新建一个darwable对象
Drawable imageDrawable = new BitmapDrawable(image);
// 新建一个新的输出图片
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);
paint.setColor(Color.RED);
Path mPath = new Path();
mPath.moveTo(0, y);
mPath.lineTo(x, y);
mPath.lineTo(x, 30);
RectF mRectRightTop = new RectF(x-radius,0, x,radius);
RectF mRectLeftTop = new RectF(0,0,radius,radius);
mPath.arcTo(mRectRightTop, 0, -90);
mPath.lineTo(30, 0);
mPath.arcTo(mRectLeftTop, 270, -90);
mPath.lineTo(0, y);
// mPath.close();
canvas.drawPath(mPath, paint);
//canvas.drawCircle(radius, radius, radius, 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;
}