Android Picasso使用高斯模糊處理的示例代碼
眾所周知,Picasso是一個(gè)在Android開發(fā)中經(jīng)常使用到的圖片加載庫,常規(guī)用法一般是這樣:
Picasso.with(context)
.load(img_url)
.config(Bitmap.Config.RGB_565)
.into(imageView);
還有不使用緩存的用法:
Picasso.with(context)
.load(img_url)
.config(Bitmap.Config.RGB_565)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
等等一系列用法不一一列舉,前段時(shí)間遇到一個(gè)需要使用高斯模糊的需求,起初找了一些處理的代碼,但后面發(fā)現(xiàn)Picasso在加載圖片的時(shí)候可以直接進(jìn)行處理,所以去學(xué)習(xí)了一下這個(gè)用法,和其他用法一樣,各種點(diǎn)點(diǎn)點(diǎn),這次是transform():
Picasso.with(context)
.load(img_url)
.config(Bitmap.Config.RGB_565)
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.transform(new BlurTransformation(this))
.into(imageView);
使用transform實(shí)現(xiàn)高斯模糊,其中關(guān)鍵代碼為BlurTransformation的實(shí)現(xiàn):
public class BlurTransformation implements Transformation {
RenderScript rs;
public BlurTransformation(Context context) {
super();
rs = RenderScript.create(context);
}
@Override
public Bitmap transform(Bitmap bitmap) {
Bitmap blurredBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Allocation input = Allocation.createFromBitmap(rs, blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL, Allocation.USAGE_SHARED);
Allocation output = Allocation.createTyped(rs, input.getType());
ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
script.setInput(input);
//設(shè)置模糊半徑
script.setRadius(14);
script.forEach(output);
output.copyTo(blurredBitmap);
bitmap.recycle();
return blurredBitmap;
}
@Override
public String key() {
return "blur";
}
}
新建好這個(gè)類后,則在Picasso使用是,作為參數(shù)給transform設(shè)置進(jìn)去即可。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android顯示系統(tǒng)SurfaceFlinger詳解
本文詳細(xì)講解了Android顯示系統(tǒng)SurfaceFlinger,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
android4.0屏蔽HOME鍵的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了android4.0屏蔽HOME鍵的簡(jiǎn)單實(shí)現(xiàn),需要的朋友可以參考下2014-02-02
Android基于AlarmManager實(shí)現(xiàn)用戶在線心跳功能示例
這篇文章主要介紹了Android基于AlarmManager實(shí)現(xiàn)用戶在線心跳功能,結(jié)合檢測(cè)用戶在線功能實(shí)例形式分析了AlarmManager全局定時(shí)器的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-10-10
Android仿正點(diǎn)鬧鐘時(shí)間齒輪滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android仿正點(diǎn)鬧鐘時(shí)間齒輪滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Android開發(fā) OpenGL ES繪制3D 圖形實(shí)例詳解
這篇文章主要介紹了Android開發(fā) OpenGL ES繪制3D 圖形實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-09-09

