Android 三行代碼實現(xiàn)高斯模糊效果
前言
設(shè)計:有了毛玻璃效果,產(chǎn)品的逼格直接拉滿了呀
我:啊,對對對。我去 GayHub 上找找有沒有好的解決方案吧
設(shè)計:GayHub ???
可行的方案
要實現(xiàn)高斯模糊的方式有很多,StackBlur、RenderScript、Glide 等等都是不錯的方式,但最簡單直接效率最高的方式,還得是上 Github。
搜索的關(guān)鍵詞為 android blur
,可以看到有兩個庫是比較合適的, Blurry 和 BlurView。 這兩個庫 Star 數(shù)比較高,并且也還在維護著。
于是,便嘗試了一番,發(fā)現(xiàn) BlurView 比 Blurry 更好用,十分推薦上手 BlurView。
Blurry
優(yōu)點:API 使用非常簡潔,效果也不錯,提供同步和異步加載的解決方案
缺點:奇奇怪怪的 Bug 非常多,并且只能作用于 ImageView
BlurView(推薦)
- 優(yōu)點:使用的過程中幾乎沒有遇到 bug,實現(xiàn)時調(diào)用的代碼較少。并且,可以實現(xiàn)復(fù)雜的模糊 View
- 缺點:需要在 xml 中配置,并且需要花幾秒鐘的時間理解一下 rootView 的概念
使用方式:
XML:
<androidx.constraintlayout.widget.ConstraintLayout ?... ?android:id="@+id/rootView" ?android:background="@color/purple_200" > ? ?<ImageView ? ?... ? ?android:id="@+id/imageView" /> ? ?<eightbitlab.com.blurview.BlurView ? ?... ? ?android:id="@+id/blurView" /> ? </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity#onCreate:
// 這里的 rootView,只要是 blurView 的任意一個父 View 即可 val rootView = findViewById<ConstraintLayout>(R.id.rootView) val blurView = findViewById<BlurView>(R.id.blurView) blurView.setupWith(rootView, RenderScriptBlur(this))
實現(xiàn)的效果:
使用前:
使用后:
Tips :
- 在 BlurView 以下的 View 都會有高斯模糊的效果
- rootView 可以選擇離 BlurView 最近的 ViewGroup
.setBlurRadius()
可以用來設(shè)置卷積核的大小,默認是 16F.setOverlayColor()
可以用來設(shè)置高斯模糊覆蓋的顏色值
例如如下參數(shù)配置時可以達到這樣的效果:
blurView.setupWith(rootView, RenderScriptBlur(this)) ? ? ? ? ? .setBlurRadius(5F) ? ? ? ? ? .setOverlayColor(Color.parseColor("#77000000"))
最后,再補充一下滑動時的效果:
到此這篇關(guān)于Android 三行代碼實現(xiàn)高斯模糊效果的文章就介紹到這了,更多相關(guān)Android高斯模糊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android textview 實現(xiàn)長按自由選擇復(fù)制功能的方法
下面小編就為大家?guī)硪黄狝ndroid textview 實現(xiàn)長按自由選擇復(fù)制功能的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04android編程實現(xiàn)sd卡讀取數(shù)據(jù)庫的方法
這篇文章主要介紹了android編程實現(xiàn)sd卡讀取數(shù)據(jù)庫的方法,涉及Android權(quán)限控制及針對sd卡與數(shù)據(jù)庫的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11Android源碼學(xué)習(xí)之工廠方法模式應(yīng)用及優(yōu)勢介紹
工廠方法模式定義:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類,感興趣的朋友可以了解下哦2013-01-01Android獲取SDcard目錄及創(chuàng)建文件夾的方法
今天小編就為大家分享一篇Android獲取SDcard目錄及創(chuàng)建文件夾的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Android使用系統(tǒng)自帶的相機實現(xiàn)一鍵拍照功能
這篇文章主要介紹了Android使用系統(tǒng)自帶的相機實現(xiàn)一鍵拍照功能,非常不錯,具有參考借鑒價值,需要的朋友參考下2017-01-01Android中AsyncTask異步任務(wù)使用詳細實例(一)
AsyncTask是Android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現(xiàn)異步操作,并提供接口反饋當前異步執(zhí)行的程度(可以通過接口實現(xiàn)UI進度更新),最后反饋執(zhí)行的結(jié)果給UI主線程,通過本文給大家介紹Android中AsyncTask異步任務(wù)使用詳細實例(一),需要的朋友參考下2016-02-02詳解Android控件之DatePicker、TimePicker探究
本篇文章主要介紹了Android控件之DatePicker、TimePicker探究,非常具有實用價值,需要的朋友可以參考下。2016-12-12