创建上圆角矩形的方法
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;
}
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;
}
相关文章推荐
- 使用Graphic画圆角矩形和填充圆角矩形的方法
- j2me学习笔记【13】——创建矩形框、圆角矩形以及填充颜色小例子
- drawRoundRect方法:绘制圆角矩形
- Android圆角矩形创建工具RoundRect类
- Android圆角矩形创建工具RoundRect类
- vb.net中获取圆角矩形的两种方法
- cocos2dx图片精灵裁剪圆角矩形方法
- android实现圆角矩形背景的方法
- drawRoundRect方法:绘制圆角矩形
- iOS画圆角矩形的方法
- 创建圆角矩形窗口的问题
- drawRoundRect方法:绘制圆角矩形
- 绘制圆角矩形(方法 )
- canvas.drawRoundRect方法,绘制圆角矩形
- iOS--创建圆角图片的又一方法
- 创建一个圆角矩形按钮
- photoshop中给矩形做圆角的方法
- div+css实现圆角矩形的几种方法
- 如何通过代码创建圆角矩形和图片背景选择器
- PhotoShop中画圆角矩形最简单方法(图文并茂)!