美文网首页Android Demo_BamboyAndroid知识Android开发
Android简单、高性能的高斯模糊(毛玻璃)效果(附源码)

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

作者: 尘少少少 | 来源:发表于2017-05-26 15:32 被阅读1035次

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

    这是目前市面上性能最高的方案,
    也不知道最初是哪位大神写的,
    我也只是拿来封装一下,
    变得更简单、更好用,
    加上了阴影遮罩的效果。

    先来看看效果吧,
    只是有一点要说明的,
    由于我就把GIF压缩了一下,
    所以大家会看到有一个一个的点点,
    实际是没有的,
    效果很赞很平滑,
    请放心使用。

    Bamboy高斯模糊

    话不多说,
    下边开启干货模式。

    第一步:
    把我项目里的工具类的包copy到你的项目里


    Bamboy工具类

    至于每个工具类是干什么用的,
    我自认注释写得比较完整,
    大家伙儿可以下载下来细细研究。

    第二步:
    模糊图片
    很简单,一句话:

    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一睹为快:

    手机浏览器扫码直接下载安装

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/enlxfxtx.html