在android给图片添加圆角效果有两种方法,一种是用java代码来重绘图片,另一种方法是用xml来实现,这里给出一个Java实现重绘制图片的方法:
public static Bitmap getRoundCornerBitmap(Bitmap bitmap, float roundPX){int width = bitmap.getWidth();int height = bitmap.getHeight(); Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888);Canvas canvas = new Canvas(bitmap2); final int color = 0xff424242;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, width, height);final RectF rectF = new RectF(rect); paint.setColor(color);paint.setAntiAlias(true);canvas.drawARGB(0, 0, 0, 0);canvas.drawRoundRect(rectF, roundPX, roundPX, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(bitmap, rect, rect, paint); return bitmap2;}

用法demo:   XXX.getRoundCornerBitmap(BitmapObj, 10.0f);

另一种方法就是用XML实现,原理就是遮罩效果,如果有童鞋做过web开发的就知道在CSS中有一个叫层的概念,android中的圆角也是利用这中原理实现的:

demo引自OSchina:http://www.oschina.net/question/54100_34033

一般来说图片加圆角可以使用 Java 的方式来进行, 对图片略加处理即可, 但也可以使用纯XML+Nice-Patch图片来进行, 这样的速度会更快. 如果背景是纯色的情况下建议使用此方法.

原理则是利用frameLayout在图片上加一个遮盖图片, 从而达到圆角效果.

背景图片:

一张中间透明, 四个边角带有颜色的遮盖图片即可, 可以使用ps画一个带圆角的矩形, 然后反选并填充边角颜色即可.

参考图片如下

Layout文件:

            

其中第一个ImageView为目标图片, 而第一个ImageView则为遮盖层.

更多相关文章

  1. android图片轮播+点击跳转广告页面
  2. Android 下拉加载更多 上拉刷新 框架 (太极 八卦样式刷新,支持自定
  3. android button按键得到焦点和点击后改变背景图片
  4. 自定义 RadioButton 图片
  5. Android 图片的帧动画
  6. Android DeepLink原理与应用(2)
  7. Android图片下载缓存库picasso解析

随机推荐

  1. MySQL中datetime时间字段的四舍五入操作
  2. 浅谈MySQL表空间回收的正确姿势
  3. mysql如何能有效防止删库跑路
  4. 浅谈MySQL函数
  5. Mysql binlog日志文件过大的解决
  6. MySQL修炼之联结与集合浅析
  7. 如何利用MySQL的binlog恢复误删数据库详
  8. 深入理解Mysql事务隔离级别与锁机制问题
  9. MySql escape的使用案例详解
  10. MySql数据库单表查询与多表连接查询效率