毛玻璃效果相信不少朋友都眼紅好久了,
隔壁ios系統對高斯模糊早就大範圍使用了,
我們Android卻絲絕不爲所動,
因而就只能靠廣大開發者咯。ios
這是目前市面上性能最高的方案,
也不知道最初是哪位大神寫的,
我也只是拿來封裝一下,
變得更簡單、更好用,
加上了陰影遮罩的效果。git
先來看看效果吧,
只是有一點要說明的,
CSDN要求圖片在2M之內,
因而我就把GIF壓縮了一下,
因此你們會看到有一個一個的點點,
實際是沒有的,
效果很贊很平滑,
請放心使用。github
話很少說,
下邊開啓乾貨模式。工具
第一步:
把我項目裏的工具類的包copy到你的項目裏
至於每一個工具類是幹什麼用的,
我自認註釋寫得比較完整,
你們夥兒能夠下載下來細細研究。性能
第二步:
模糊圖片
很簡單,一句話:this
UtilBitmap.blurImageView(this, iv_head_portrait, 25);
不難理解,
第一個參數是上下文;
第二個參數是要模糊的ImageView;
第三個參數是模糊等級,值爲 0~25。spa
塵少的一向風格,
就是這麼簡單。.net
可是我我的認爲,
最須要高斯模糊的場景應該是彈窗,
因此我特地封裝了一下彈窗的效果:code
// 獲取截圖的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一睹爲快: