91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android圖片加載利器之Picasso擴展功能

發布時間:2020-08-28 22:10:32 來源:腳本之家 閱讀:232 作者:landptf 欄目:移動開發

這篇文章中我們來繼續學習Picasso中還提供了哪些擴展功能,一個好的框架一定是擴展性強的,你需要的我剛好有。

下面看一下都提供了哪些擴展功能呢?

Picasso內部采用了建造者模式,所以我們只看Builder內部類都提供了哪些方法即可

1 defaultBitmapConfig(Bitmap.Config bitmapConfig)

設置像素格式,Picasso的默認格式為ARGB_8888,我們知道采用這個值一個像素占用4個字節,可以使用RGB_565來替換,這樣可以節省一半的內存開銷,當然圖片質量還是有一定損失的。

2 downloader(Downloader downloader)

自定義下載器,默認OkHttp,具體的實現類是OkHttpDownloader

3 executor(ExecutorService executorService)

線程池,默認的實現是PicassoExecutorService, 這里面會根據不同的網絡情況來設置核心線程和最大線程數,最大為4,最小為1,默認為3.

4 memoryCache(Cache memoryCache)

緩存策略,默認實現為LruCache,LRU(最近最少未使用算法)目前在內存緩存這塊使用的還是非常廣泛的。

5 listener(Listener listener)

圖片加載失敗的一個回調事件,回調方法為onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)

6 requestTransformer(RequestTransformer transformer)

請求的轉換,在request被提交之前進行轉換

7 addRequestHandler(RequestHandler requestHandler)

自定義加載圖片的來源,默認為我們實現了7個,分別如下:

ResourceRequestHandler
ContactsPhotoRequestHandler
MediaStoreRequestHandler
ContentStreamRequestHandler
AssetRequestHandler
FileRequestHandler
NetworkRequestHandler

以上方法的調用方式如下

Picasso picasso = new Picasso.Builder(this)
    .defaultBitmapConfig(Bitmap.Config.RGB_565)
    .downloader(downloader)
    .executor(executotService)
    .memoryCache(cache)
    .listener(new Picasso.Listener() {
      @Override
      public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) {

      }
    })
    .requestTransformer(new Picasso.RequestTransformer() {
      @Override
      public Request transformRequest(Request request) {
        return null;
      }
    })
    .addRequestHandler(requestHandler)
    .build();
Picasso.setSingletonInstance(picasso);
picasso.load(imageUrl).into(imageView);

在RequestCreator中也有幾個可以自定義的方法,上篇博客中未涉及到,這里統一列出來

1 config(Bitmap.Config config)

同上面的defaultBitmapConfig(Bitmap.Config bitmapConfig)效果完全一樣,兩種方式都可以設置,defaultBitmapConfig(Bitmap.Config.RGB_565)傾向于全局設置,而config(Bitmap.Config.RGB_565)只對單次請求生效

2 transform(Transformation transformation)

圖片轉換,一般我們得到圖片之后,在顯示之前還可以進一步轉換,比如進行一些色彩處理,改變形狀等等。

以上方法的調用方式如下

Picasso.with(this)
    .load(imageUrl)
    .config(Bitmap.Config.RGB_565)
    .transform(transform)
    .into(imageView);


Android圖片加載利器之Picasso擴展功能

好了,到這里Picasso的功能基本介紹完了,接下來我們將從源碼的角度去學習內部的實現。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平度市| 客服| 区。| 大兴区| 铅山县| 自贡市| 三江| 平遥县| 太和县| 聊城市| 神农架林区| 庄浪县| 崇信县| 县级市| 大方县| 云阳县| 安达市| 淮南市| 平乡县| 汝城县| 昌黎县| 炉霍县| 灵石县| 齐齐哈尔市| 特克斯县| 金湖县| 綦江县| 积石山| 厦门市| 剑川县| 临猗县| 营口市| 西峡县| 漳浦县| 新巴尔虎右旗| 邵阳市| 揭阳市| 德钦县| 化州市| 白玉县| 同江市|