在Android設備上,實現一個毛玻璃(高斯模糊)效果:RxBlur

jopen 8年前發布 | 49K 次閱讀 Android開發 移動開發

在Android設備上,實現一個毛玻璃(高斯模糊)效果總是讓人很棘手,不僅要考慮視覺效果,還要在性能和代碼實現的復雜度上做出權衡。 這里歸納和總結了幾種實現方案(PS: GitHub + StackOverflow + DIY),并且用RxJava進行封裝,方便以流的形式處理圖片的加載和操作。

使用說明:

項目結構

  • MainActivity: RxJava + RxBinding + RxViewStub + BestBlur

  • PicassoBlurActivity: RxJava + Picasso + Transformation + RenderScript

  • GlideBlurActivity: RxJava + Glide + Transformation + RenderScript

  • RemoteBlurActivity: RxJava + Retrofit + BestBlur

  • FastBlurActivity: RxJava + Picasso + FastBlur

  • PaintBlurActivity: RxJava + Picasso + PaintBlur

  • RxAnimatorBlurActivity: RxJava + Picasso + Animator(TypeEvaluator)

概要

把它運行起來,然后看一下高斯效果,這里我還計算了每種模糊算法的所耗時長,方便您的選擇,雖然BestBlur在代碼的復雜度上很難令人接受,但是在性能表現和模糊效果上還是令人滿意的,所以,綜合考慮,它是個不錯的選擇,而且,還可以設置模糊灰度。

如果您對RxJava更感興趣,可以按照我的實現思路,擴展自己需要的“RxBinding”。

Developed By


項目地址: https://github.com/SmartDengg/RxBlur

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!