轉(zhuǎn)載請(qǐng)注明出處:http://www.reibang.com/p/0a93245e7b08
今天開(kāi)始我們來(lái)學(xué)習(xí)一下Picasso盈简,計(jì)劃包括以下幾方面的內(nèi)容:
- 圖片加載利器之Picasso(一)初識(shí)
- 圖片加載利器之Picasso(二)基本用法
- 圖片加載利器之Picasso(三)進(jìn)階
- 圖片加載利器之Picasso(四)源碼解析
目前市場(chǎng)上比較流行的圖片加載框架主要有UniversalImageLoader蛉迹,Picasso,Glide凄诞,F(xiàn)resco。
下面簡(jiǎn)單介紹一下這幾個(gè)框架:
UniversalImageLoader:這個(gè)可以說(shuō)是非常非常經(jīng)典的一個(gè)了,相信每個(gè)app的開(kāi)發(fā)人員都使用過(guò)钢拧,只可惜作者已經(jīng)停止該項(xiàng)目的維護(hù)了雄妥,所以不太推薦使用最蕾。
Picasso:是Square公司出品的圖片加載框架,Square出品必出精品老厌,主要特點(diǎn)就是使用簡(jiǎn)單瘟则,擴(kuò)展性強(qiáng),支持各種來(lái)源的圖片枝秤,包括網(wǎng)絡(luò)醋拧、Resources、assets、files趁仙、content providers等洪添。內(nèi)部集成了OkHttp的網(wǎng)絡(luò)框架,所以如果你的項(xiàng)目中使用了Square公司的其他框架雀费,那么推薦使用Picasso干奢,兼容性會(huì)好一些。目前在Github上的Star已經(jīng)達(dá)到12758個(gè)盏袄。
Glide:是Google員工的開(kāi)源項(xiàng)目忿峻,基于Picasso的一個(gè)框架,代碼風(fēng)格與Picasso非常相似辕羽,增加了更多的功能逛尚,非常重要的就是支持gif,當(dāng)然它的包會(huì)大一些刁愿。如果你的項(xiàng)目對(duì)圖片的使用場(chǎng)景非常多绰寞,并且需要支持gif,則推薦使用铣口。目前在Github上的Star已經(jīng)達(dá)到13636個(gè)滤钱。
Fresco:是FB出品的開(kāi)源框架,比較新脑题,最大的優(yōu)點(diǎn)就是在內(nèi)存占用上的優(yōu)化件缸,極大的減少了OOM,功能上也包含了以上三種框架的功能叔遂,但是也帶來(lái)了一個(gè)比較明顯的缺點(diǎn)就是太大了他炊,所以推薦使用在完全是做圖片相關(guān)的app上,否則Picasso和Glide就完全夠用了已艰。目前在Github上的Star已經(jīng)達(dá)到11983個(gè)痊末。
上面主要對(duì)各種框架做個(gè)簡(jiǎn)單的介紹,既然是講解Picasso的旗芬,那么接下來(lái)看看Picasso都有哪些功能舌胶。
1 提供內(nèi)存和磁盤(pán)緩存,默認(rèn)開(kāi)啟疮丛,可以設(shè)置不進(jìn)行緩存
2 圖片加載過(guò)程中默認(rèn)顯示的圖片
3 圖片加載失敗或出錯(cuò)后顯示的圖片
4 圖片加載成功或失敗的回調(diào)
5 自定義圖片大小幔嫂、自動(dòng)測(cè)量ImageView大小、裁剪誊薄、旋轉(zhuǎn)圖片等
6 對(duì)圖片進(jìn)行轉(zhuǎn)換
7 標(biāo)簽管理履恩,暫停和恢復(fù)圖片加載
8 請(qǐng)求優(yōu)先級(jí)管理
9 可以從不同來(lái)源加載圖片,網(wǎng)絡(luò)呢蔫、Resources切心、assets飒筑、files、content providers
10 更加豐富的擴(kuò)展功能
以上這些功能將會(huì)在后續(xù)的博客中進(jìn)行詳細(xì)講解绽昏。