欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn)圖片的高斯模糊(兩種方式)

 更新時(shí)間:2017年03月05日 13:56:36   作者:mq2856992713  
本文給大家分享兩種實(shí)現(xiàn)圖片的高斯模糊效果,非常不錯(cuò),具有參考借鑒價(jià)值,對(duì)android圖片高斯模糊效果感興趣的朋友一起看看吧

在市面上很多的APP都使用了對(duì)圖片作模糊化處理后作為背景的效果,來(lái)使得整個(gè)頁(yè)面更具有整體感。如下就是網(wǎng)易云音樂(lè)的音樂(lè)播放頁(yè)面:

很明顯這個(gè)頁(yè)面的背景是由中間的小圖片模糊化后而來(lái)的。最常用的模糊化處理就是高斯模糊。

高斯模糊的幾種實(shí)現(xiàn)方式:

(1)RenderScript

RenderScript是Google在Android 3.0(API 11)中引入的一個(gè)高性能圖片處理框架。

使用RenderScriprt實(shí)現(xiàn)高斯模糊:

首先在在build.gradle的defaultConfig中添加RenderScript的使用配置

renderscriptTargetApi 24
renderscriptSupportModeEnabled true

renderscriptTargetApi :

指定要生成的字節(jié)碼版本。我們(Goole官方)建議您將此值設(shè)置為最低API級(jí)別能夠提供所有的功能,你使用和設(shè)置renderscriptSupportModeEnabled為true。此設(shè)置的有效值是從11到
最近發(fā)布的API級(jí)別的任何整數(shù)值。

renderscriptSupportModeEnabled:

指定生成的字節(jié)碼應(yīng)該回落到一個(gè)兼容的版本,如果運(yùn)行的設(shè)備不支持目標(biāo)版本。

下面就是使用RenderScriprt實(shí)現(xiàn)高斯模糊的方法:

public static Bitmap blurBitmap(Context context, Bitmap bitmap) {
 //用需要?jiǎng)?chuàng)建高斯模糊bitmap創(chuàng)建一個(gè)空的bitmap
Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
 // 初始化Renderscript,該類提供了RenderScript context,創(chuàng)建其他RS類之前必須先創(chuàng)建這個(gè)類,其控制RenderScript的初始化,資源管理及釋放
 RenderScript rs = RenderScript.create(context);
 // 創(chuàng)建高斯模糊對(duì)象
 ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
 // 創(chuàng)建Allocations,此類是將數(shù)據(jù)傳遞給RenderScript內(nèi)核的主要方 法,并制定一個(gè)后備類型存儲(chǔ)給定類型
 Allocation allIn = Allocation.createFromBitmap(rs, bitmap);
 Allocation allOut = Allocation.createFromBitmap(rs, outBitmap);
 //設(shè)定模糊度(注:Radius最大只能設(shè)置25.f)
 blurScript.setRadius(15.f);
 // Perform the Renderscript
 blurScript.setInput(allIn);
 blurScript.forEach(allOut);
 // Copy the final bitmap created by the out Allocation to the outBitmap
 allOut.copyTo(outBitmap);
 // recycle the original bitmap
 // bitmap.recycle();
 // After finishing everything, we destroy the Renderscript.
 rs.destroy();
 return outBitmap;
 }

(2)Glide實(shí)現(xiàn)高斯模糊

Glide是一個(gè)比較強(qiáng)大也是比較常用的一個(gè)圖片加載庫(kù),Glide中的Transformations用于在圖片顯示前對(duì)圖片進(jìn)行處理。glide-transformations 這個(gè)庫(kù)為Glide提供了多種多樣的 Transformations實(shí)
現(xiàn),其中就包括高斯模糊的實(shí)現(xiàn)BlurTransformation

compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'jp.wasabeef:glide-transformations:2.0.1' 

 通過(guò)這兩個(gè)庫(kù)的結(jié)合使用,就可以使用其中的BlurTransformation實(shí)現(xiàn)圖片的高斯模糊

Glide.with(context).load(R.drawable.defalut_photo).bitmapTransform(new BlurTransformation(context, radius)).into(mImageView);

其中radius的取值范圍是1-25,radius越大,模糊度越高。

以上所述是小編個(gè)大家介紹的Android實(shí)現(xiàn)圖片的高斯模糊,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • Android基于CountDownView的時(shí)間控件擴(kuò)展

    Android基于CountDownView的時(shí)間控件擴(kuò)展

    這篇文章主要為大家詳細(xì)介紹了Android基于CountDownView的時(shí)間控件擴(kuò)展,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android 自定義View之倒計(jì)時(shí)實(shí)例代碼

    Android 自定義View之倒計(jì)時(shí)實(shí)例代碼

    這篇文章主要介紹了Android 自定義View之倒計(jì)時(shí)實(shí)例代碼的相關(guān)資料,大多數(shù)app在注冊(cè)的時(shí)候,都有一個(gè)獲取驗(yàn)證碼的按鈕,點(diǎn)擊后,訪問(wèn)接口,最終用戶會(huì)收到短信驗(yàn)證碼。為了不多次寫(xiě)這個(gè)獲取驗(yàn)證碼的接口,下面將它自定義成一個(gè)view,方便使用,需要的朋友可以參考下
    2017-04-04
  • 優(yōu)化SimpleAdapter適配器加載效率的方法

    優(yōu)化SimpleAdapter適配器加載效率的方法

    下面小編就為大家?guī)?lái)一篇優(yōu)化SimpleAdapter適配器加載效率的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Kotlin擴(kuò)展函數(shù)超詳細(xì)介紹

    Kotlin擴(kuò)展函數(shù)超詳細(xì)介紹

    Kotlin?可以為一個(gè)不能修改的或來(lái)自第三方庫(kù)中的類編寫(xiě)一個(gè)新的函數(shù)。?這個(gè)新增的函數(shù)就像那個(gè)原始類本來(lái)就有的函數(shù)一樣,可以用普通的方法調(diào)用,這種機(jī)制的函數(shù)稱為擴(kuò)展函數(shù)
    2022-09-09
  • Android 媒體開(kāi)發(fā)之MediaPlayer狀態(tài)機(jī)接口方法實(shí)例解析

    Android 媒體開(kāi)發(fā)之MediaPlayer狀態(tài)機(jī)接口方法實(shí)例解析

    這篇文章主要介紹了Android 媒體開(kāi)發(fā)之MediaPlayer狀態(tài)機(jī)接口方法實(shí)例解析,需要的朋友可以參考下
    2017-08-08
  • 最新評(píng)論