Chinaunix首页 | 论坛 | 博客
  • 博客访问: 860137
  • 博文数量: 182
  • 博客积分: 1992
  • 博客等级: 上尉
  • 技术积分: 1766
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-18 11:49
文章分类

全部博文(182)

文章存档

2019年(1)

2016年(5)

2015年(29)

2014年(38)

2013年(21)

2012年(36)

2011年(52)

我的朋友

分类: Android平台

2014-06-20 13:33:03


点击(此处)折叠或打开

  1. public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {

  2.         Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
  3.         Canvas canvas = new Canvas(output);

  4.         final Paint paint = new Paint();
  5.         //保证是方形,并且从中心画
  6.         int width = bitmap.getWidth();
  7.         int height = bitmap.getHeight();
  8.         int w;
  9.         int deltaX = 0;
  10.         int deltaY = 0;
  11.         if (width <= height) {
  12.             w = width;
  13.             deltaY = height - w;
  14.         } else {
  15.             w = height;
  16.             deltaX = width - w;
  17.         }
  18.         final Rect rect = new Rect(deltaX, deltaY, w, w);
  19.         final RectF rectF = new RectF(rect);

  20.         paint.setAntiAlias(true);
  21.         canvas.drawARGB(0, 0, 0, 0);
  22.         //圆形,所有只用一个
  23.         
  24.         int radius = (int) (Math.sqrt(w * w * 2.0d) / 2);
  25.         canvas.drawRoundRect(rectF, radius, radius, paint);

  26.         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
  27.         canvas.drawBitmap(bitmap, rect, rect, paint);
  28.         return output;
  29.     }

阅读(9148) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~