Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)

9次阅读

共计 1154 个字符,预计需要花费 3 分钟才能阅读完成。

毛玻璃效果相信很多朋友都眼红很久了,隔壁 ios 系统对高斯模糊早就大范围使用了,咱们 Android 却丝毫不为所动,于是就只能靠广大开发者咯。
这是目前市面上性能最高的方案,也不知道最初是哪位大神写的,我也只是拿来封装一下,变得更简单、更好用,加上了阴影遮罩的效果。
先来看看效果吧,只是有一点要说明的,CSDN 要求图片在 2M 以内,于是我就把 GIF 压缩了一下,所以大家会看到有一个一个的点点,实际是没有的,效果很赞很平滑,请放心使用。

话不多说,下边开启干货模式。
第一步:把我项目里的工具类的包 copy 到你的项目里至于每个工具类是干什么用的,我自认注释写得比较完整,大家伙儿可以下载下来细细研究。
第二步:模糊图片很简单,一句话:
UtilBitmap.blurImageView(this, iv_head_portrait, 25);
不难理解,第一个参数是上下文;第二个参数是要模糊的 ImageView;第三个参数是模糊等级,值为 0~25。
尘少的一贯风格,就是这么简单。
但是我个人认为,最需要高斯模糊的场景应该是弹窗,所以我特意封装了一下弹窗的效果:
// 获取截图的 Bitmap
Bitmap bitmap = UtilScreenCapture.getDrawing(this);

if (bitmap != null) {
// 将截屏 Bitma 放入 ImageView
iv_popup_window_back.setImageBitmap(bitmap);
// 将 ImageView 进行高斯模糊【25 是最高模糊等级】【0x77000000 是蒙上一层颜色,此参数可不填】
UtilBitmap.blurImageView(this, iv_popup_window_back, 25, 0x77000000);
} else {
// 获取的 Bitmap 为 null 时,用半透明代替
iv_popup_window_back.setBackgroundColor(0x77000000);
}

// 打开弹窗
UtilAnim.showToUp(rl_popup_window, iv_popup_window_back);
这里唯一需要注意的,
就是「将 ImageView 进行高斯模糊」的那一行。
可以发现,
比直接模糊图片多了个设置颜色的参数,
其实从 GIF 上也能看得出来,
弹窗的背景模糊,
比直接模糊图片多了层黑色遮罩,
这个颜色参数就是做这个用的,
这个参数传什么颜色,
就会有什么颜色的遮罩。

至此就差不多了,欢迎大家伙儿共同探讨。
尘少老规矩,附源码:http://download.csdn.net/down…
如果觉得尘少的 Demo 还不错的话,可以克隆我的 Git 仓库,各种酷炫效果收入囊中:https://github.com/Bamboy1203… 手机扫码下载 App 一睹为快:

正文完
 0