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