Fresco是一個強(qiáng)大的系統(tǒng)用于在Android應(yīng)用中展示圖片,它能夠從網(wǎng)絡(luò)、本地存儲和本地資源中加載圖片。它擁有三級緩存,Fresco在顯示方面是用了Drawees,可以顯示占位符,直到圖片加載完成。
本教程內(nèi)容來源于 fresco 中文網(wǎng)
英文官網(wǎng)Fresco:http://frescolib.org/
Fresco 是一個強(qiáng)大的系統(tǒng)用于在 Android 應(yīng)用中展示圖片,它能夠從網(wǎng)絡(luò)、本地存儲和本地資源中加載圖片。它擁有三級緩存,F(xiàn)resco 在顯示方面是用了 Drawees,可以顯示占位符,直到圖片加載完成。
Fresco 是一個強(qiáng)大的圖片加載組件。
Fresco 中設(shè)計(jì)有一個叫做 image pipeline 的模塊。它負(fù)責(zé)從網(wǎng)絡(luò),從本地文件系統(tǒng),本地資源加載圖片。為了最大限度節(jié)省空間和 CPU 時間,它含有 3 級緩存設(shè)計(jì)(2 級內(nèi)存,1 級文件)。
Fresco 中設(shè)計(jì)有一個叫做 Drawees 模塊,方便地顯示 loading 圖,當(dāng)圖片不再顯示在屏幕上時,及時地釋放內(nèi)存和空間占用。
Fresco 支持 Android2.3(API level 9) 及其以上系統(tǒng)。
一個沒有未壓縮的圖片,即 Android 中的 Bitmap,占用大量的內(nèi)存。大的內(nèi)存占用勢必引發(fā)更加頻繁的 GC。在 5.0 以下,GC 將會顯著地引發(fā)界面卡頓。
在 5.0 以下系統(tǒng),F(xiàn)resco 將圖片放到一個特別的內(nèi)存區(qū)域。當(dāng)然,在圖片不顯示的時候,占用的內(nèi)存會自動被釋放。這會使得 APP 更加流暢,減少因圖片內(nèi)存占用而引發(fā)的 OOM。
Fresco 在低端機(jī)器上表現(xiàn)一樣出色,你再也不用因圖片內(nèi)存占用而思前想后。
漸進(jìn)式的 JPEG 圖片格式已經(jīng)流行數(shù)年了,漸進(jìn)式圖片格式先呈現(xiàn)大致的圖片輪廓,然后隨著圖片下載的繼續(xù),呈現(xiàn)逐漸清晰的圖片,這對于移動設(shè)備,尤其是慢網(wǎng)絡(luò)有極大的利好,可帶來更好的用戶體驗(yàn)。
Android 本身的圖片庫不支持此格式,但是 Fresco 支持。使用時,和往常一樣,僅僅需要提供一個圖片的 URI 即可,剩下的事情,F(xiàn)resco 會處理。
是的,支持加載 Gif 圖,支持 WebP 格式。
Fresco 的 Drawees 設(shè)計(jì),帶來一些有用的特性:
Fresco 的 image pipeline 設(shè)計(jì),允許用戶在多方面控制圖片的加載:
更多建議: