您的位置:首页 > 移动开发 > Android开发

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

2017-01-04 11:14 996 查看
毛玻璃效果相信很多朋友都眼红很久了,

隔壁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/download/bamboy_/9734991

如果觉得尘少的Demo还不错的话,

可以克隆我的Git仓库,

各种酷炫效果收入囊中:

https://github.com/Bamboy120315/bamboy.git

手机扫码下载App一睹为快:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息