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

首頁 > 系統 > Android > 正文

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

2019-12-12 03:21:35
字體:
來源:轉載
供稿:網友

這篇文章中我們來繼續學習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);

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博罗县| 阿勒泰市| 北流市| 怀宁县| 宜宾市| 景谷| 攀枝花市| 葫芦岛市| 鄂托克前旗| 仙居县| 渑池县| 常宁市| 天台县| 天津市| 江都市| 宜宾市| 信丰县| 当阳市| 永安市| 腾冲县| 临澧县| 大荔县| 合山市| 山西省| 霍城县| 东乡县| 田东县| 眉山市| 平塘县| 聂荣县| 白水县| 延长县| 会理县| 荥经县| 资源县| 开化县| 桃园县| 汝城县| 古蔺县| 津南区| 贡嘎县|