在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 button按键得到焦点和点击后改变背景图片
  3. Android(安卓)API教程:人脸检测(上)
  4. android图片轮播+点击跳转广告页面
  5. android背景选择器selector用法汇总
  6. Android中使用Movie显示gif动态图
  7. Android(安卓)图片的帧动画
  8. 自定义 RadioButton 图片
  9. Android:ImageView如何显示网络图片

随机推荐

  1. Android Studio 单刷《第一行代码》系列
  2. 在android平台上如何实现H264解码
  3. Android 打包签名
  4. android的Activity采用透明主题
  5. Android(安卓)Wi-Fi 5G Only时Wi-Fi不可
  6. Android 文件系统及权限修改
  7. Android(安卓)提交数据到服务器
  8. android学习的进阶(从零开始,从初级到高级)
  9. Android Studio 单刷《第一行代码》系列
  10. android 笔记 --- 属性gravity与layout_g