资讯专栏INFORMATION COLUMN

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

walterrwu / 1899人阅读

摘要:毛玻璃效果相信很多朋友都眼红很久了,隔壁系统对高斯模糊早就大范围使用了,咱们却丝毫不为所动,于是就只能靠广大开发者咯。

毛玻璃效果相信很多朋友都眼红很久了,
隔壁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一睹为快:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74199.html

相关文章

  • Android 高斯模糊 依我之见

    摘要:今天就来研究一下如何在上实现高斯模糊效果。平时我们对图片缩小,必然会带来很明显的清晰度的损失,但高斯模糊本身的目的就是要实现模糊的效果,因此实际上的效果差别不大,几乎可以忽略。 前言 从 iOS 7 开始 Apple 从 拟物化 过渡到了 扁平化 的设计风格,同时也搭配使用了 毛玻璃风格 当做背景效果,不得不说十分惊艳,颇有当时pc上 Widows Vista 和 OS X Yosem...

    CODING 评论0 收藏0

发表评论

0条评论

walterrwu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<