您的位置:首页 > 其它

创建上圆角矩形的方法

2015-02-09 14:23 281 查看
直接上代码,这是一个模仿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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: