android 中给图片加圆角效果

简介:
在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文件:

<!-- profile image -->
<framelayout android:layout_height="48dp" android:layout_width="48dp">
    <imageview android:id="@+id/profile_image" android:layout_height="fill_parent" android:layout_width="fill_parent">
    <!-- image corner -->
    <imageview android:background="@drawable/images_border_radius" android:layout_height="fill_parent" android:layout_width="fill_parent">
</imageview>
</imageview>
</framelayout>

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

相关文章
|
4月前
|
存储 缓存 编解码
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
83 20
Android经典面试题之图片Bitmap怎么做优化
|
8月前
|
Java Android开发
android 下载图片的问题
android 下载图片的问题
54 3
|
5月前
|
数据处理 开发工具 数据安全/隐私保护
Android平台RTMP推送|轻量级RTSP服务|GB28181接入之文字、png图片水印的精进之路
本文探讨了Android平台上推流模块中添加文字与PNG水印的技术演进。自2015年起,为了满足应急指挥及安防领域的需求,逐步发展出三代水印技术:第一代为静态文字与图像水印;第二代实现了动态更新水印内容的能力,例如实时位置与时间信息;至第三代,则优化了数据传输效率,直接使用Bitmap对象传递水印数据至JNI层,减少了内存拷贝次数。这些迭代不仅提升了用户体验和技术效率,也体现了开发者追求极致与不断创新的精神。
|
5月前
|
自然语言处理 定位技术 API
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
本文介绍如何在Android中从图片提取地理位置信息并转换为地址。首先利用`ExifInterface`获取图片内的经纬度,然后通过`Geocoder`将经纬度转为地址。注意操作需在子线程进行且考虑多语言支持。
303 4
|
5月前
|
XML 前端开发 Android开发
Android经典实战之Kotlin中实现圆角图片和圆形图片
本文介绍两种实现圆角图像视图的方法。第一种是通过自定义Kotlin `AppCompatImageView`,重写`onDraw`方法使用`Canvas`和`Path`进行圆角剪裁。第二种利用Android Material库中的`ShapeableImageView`,简单配置即可实现圆角效果。两种方法均易于实现且提供动态调整圆角半径的功能。
106 0
|
7月前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
81 1
|
7月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
119 4
|
7月前
|
开发工具 Android开发
Android 代码自定义drawble文件实现View圆角背景
Android 代码自定义drawble文件实现View圆角背景
205 0
|
7月前
|
前端开发 Java API
Android系统中读写和显示图片
Android系统中读写和显示图片
55 0
|
7月前
|
XML Java API
54. 【Android教程】图片资源:Drawable
54. 【Android教程】图片资源:Drawable
108 0

热门文章

最新文章