圖片加載利器之Picasso(三)進(jìn)階

轉(zhuǎn)載請注明出處:http://www.reibang.com/p/795ffdaf7104

這篇文章中我們來繼續(xù)學(xué)習(xí)Picasso中還提供了哪些擴(kuò)展功能,一個(gè)好的框架一定是擴(kuò)展性強(qiáng)的,你需要的我剛好有游两。

下面看一下都提供了哪些擴(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)為LruCache谓苟,LRU(最近最少未使用算法)目前在內(nèi)存緩存這塊使用的還是非常廣泛的官脓。

5 listener(Listener listener)

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

6 requestTransformer(RequestTransformer transformer)

請求的轉(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);

在RequestCreator中也有幾個(gè)可以自定義的方法纱皆,上篇博客中未涉及到湾趾,這里統(tǒng)一列出來

1 config(Bitmap.Config config)

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

2 transform(Transformation transformation)

圖片轉(zhuǎn)換铛楣,一般我們得到圖片之后,在顯示之前還可以進(jìn)一步轉(zhuǎn)換艺普,比如進(jìn)行一些色彩處理簸州,改變形狀等等。

以上方法的調(diào)用方式如下

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

好了歧譬,到這里Picasso的功能基本介紹完了岸浑,接下來我們將從源碼的角度去學(xué)習(xí)內(nèi)部的實(shí)現(xiàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瑰步,一起剝皮案震驚了整個(gè)濱河市矢洲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缩焦,老刑警劉巖读虏,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異袁滥,居然都是意外死亡盖桥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門题翻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揩徊,“玉大人,你說我怎么就攤上這事藐握⊙ス埃” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵猾普,是天一觀的道長袜炕。 經(jīng)常有香客問我,道長初家,這世上最難降的妖魔是什么偎窘? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮溜在,結(jié)果婚禮上陌知,老公的妹妹穿的比我還像新娘。我一直安慰自己掖肋,他們只是感情好仆葡,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般沿盅。 火紅的嫁衣襯著肌膚如雪把篓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天腰涧,我揣著相機(jī)與錄音韧掩,去河邊找鬼。 笑死窖铡,一個(gè)胖子當(dāng)著我的面吹牛疗锐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播费彼,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼滑臊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箍铲?” 一聲冷哼從身側(cè)響起简珠,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虹钮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膘融,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芙粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氧映。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片春畔。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖岛都,靈堂內(nèi)的尸體忽然破棺而出律姨,到底是詐尸還是另有隱情,我是刑警寧澤臼疫,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布择份,位于F島的核電站,受9級特大地震影響烫堤,放射性物質(zhì)發(fā)生泄漏荣赶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一鸽斟、第九天 我趴在偏房一處隱蔽的房頂上張望拔创。 院中可真熱鬧,春花似錦富蓄、人聲如沸剩燥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灭红。三九已至侣滩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間比伏,已是汗流浹背胜卤。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赁项,地道東北人葛躏。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像悠菜,于是被迫代替她去往敵國和親舰攒。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容