Android簡單、高性能的高斯模糊(毛玻璃)效果(附源碼)

毛玻璃效果相信很多朋友都眼紅很久了,
隔壁ios系統對高斯模糊早就大範圍使用了,
咱們Android卻絲毫不爲所動,
於是就只能靠廣大開發者咯。

這是目前市面上性能最高的方案,
也不知道最初是哪位大神寫的,
我也只是拿來封裝一下,
變得更簡單、更好用,
加上了陰影遮罩的效果。

先來看看效果吧,
只是有一點要說明的,
CSDN要求圖片在2M以內,
於是我就把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一睹爲快:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章