這篇文章中我們來繼續(xù)學(xué)習(xí)Picasso中還提供了哪些擴(kuò)展功能,一個(gè)好的框架一定是擴(kuò)展性強(qiáng)的,你需要的我剛好有。
留壩ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!下面看一下都提供了哪些擴(kuò)展功能呢?
Picasso內(nèi)部采用了建造者模式,所以我們只看Builder內(nèi)部類都提供了哪些方法即可
1 defaultBitmapConfig(Bitmap.Config bitmapConfig)
設(shè)置像素格式,Picasso的默認(rèn)格式為ARGB_8888,我們知道采用這個(gè)值一個(gè)像素占用4個(gè)字節(jié),可以使用RGB_565來替換,這樣可以節(jié)省一半的內(nèi)存開銷,當(dāng)然圖片質(zhì)量還是有一定損失的。
2 downloader(Downloader downloader)
自定義下載器,默認(rèn)OkHttp,具體的實(shí)現(xiàn)類是OkHttpDownloader
3 executor(ExecutorService executorService)
線程池,默認(rèn)的實(shí)現(xiàn)是PicassoExecutorService, 這里面會(huì)根據(jù)不同的網(wǎng)絡(luò)情況來設(shè)置核心線程和大線程數(shù),大為4,最小為1,默認(rèn)為3.
4 memoryCache(Cache memoryCache)
緩存策略,默認(rèn)實(shí)現(xiàn)為L(zhǎng)ruCache,LRU(最近最少未使用算法)目前在內(nèi)存緩存這塊使用的還是非常廣泛的。
5 listener(Listener listener)
圖片加載失敗的一個(gè)回調(diào)事件,回調(diào)方法為onImageLoadFailed(Picasso picasso, Uri uri, Exception exception)
6 requestTransformer(RequestTransformer transformer)
請(qǐng)求的轉(zhuǎn)換,在request被提交之前進(jìn)行轉(zhuǎn)換
7 addRequestHandler(RequestHandler requestHandler)
自定義加載圖片的來源,默認(rèn)為我們實(shí)現(xiàn)了7個(gè),分別如下:
ResourceRequestHandler
ContactsPhotoRequestHandler
MediaStoreRequestHandler
ContentStreamRequestHandler
AssetRequestHandler
FileRequestHandler
NetworkRequestHandler
以上方法的調(diào)用方式如下
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);