国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Picasso使用高斯模糊處理的示例代碼

2019-10-22 18:25:26
字體:
來源:轉載
供稿:網友

眾所周知,android/195303.html">Picasso是一個在Android開發中經常使用到的圖片加載庫,常規用法一般是這樣:

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);

等等一系列用法不一一列舉,前段時間遇到一個需要使用高斯模糊的需求,起初找了一些處理的代碼,但后面發現Picasso在加載圖片的時候可以直接進行處理,所以去學習了一下這個用法,和其他用法一樣,各種點點點,這次是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實現高斯模糊,其中關鍵代碼為BlurTransformation的實現:

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);     //設置模糊半徑    script.setRadius(14);     script.forEach(output);     output.copyTo(blurredBitmap);     bitmap.recycle();     return blurredBitmap;  }   @Override  public String key() {    return "blur";  }}

新建好這個類后,則在Picasso使用是,作為參數給transform設置進去即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙洋县| 梅州市| 南华县| 康保县| 商都县| 安义县| 韶关市| 根河市| 恩施市| 临澧县| 海安县| 漯河市| 汾阳市| 贵港市| 通辽市| 中江县| 碌曲县| 抚宁县| 望都县| 建平县| 淮北市| 阜阳市| 巴林左旗| 花莲县| 临城县| 剑河县| 沁阳市| 中方县| 太仆寺旗| 沛县| 博罗县| 墨脱县| 宁国市| 安阳市| 冷水江市| 芦溪县| 纳雍县| 肇庆市| 苏尼特左旗| 神木县| 永新县|