標籤:
一、關於 Fresco
github: https://github.com/facebook/fresco
API: http://www.fresco-cn.org/javadoc/reference/packages.html
Fresco 是一個強大的圖片載入組件。
Fresco 中設計有一個叫做 image pipeline 的模組。它負責從網路,從本地檔案系統,本地資源載入圖片。為了最大限度節省空間的和CPU時間,它含有3級緩衝設計(2級記憶體,1級檔案)。
Fresco 中設計有一個叫做 Drawees 模組,方便地顯示loading圖,當圖片不再顯示在螢幕上時,及時地釋放記憶體和空間佔用。
Fresco 支援 Android2.3(API level 9) 及其以上系統。
二、特性
圖片的漸進式呈現
漸進式的JPEG圖片格式已經流行數年了,漸進式圖片格式先呈現大致的圖片輪廓,然後隨著圖片下載的繼續,呈現逐漸清晰的圖片,這對於行動裝置,尤其是慢網路有極大的利好,可帶來更好的使用者體驗。
Android 本身的圖片庫不支援此格式,但是Fresco支援。使用時,和往常一樣,僅僅需要提供一個圖片的URI即可,剩下的事情,Fresco會處理。
Gif圖和WebP格式
是的,支援載入Gif圖,支援WebP格式。
映像的呈現
Fresco 的 Drawees 設計,帶來一些有用的特性:
- 自訂置中焦點(對人臉等圖片顯示非常有協助)
- 圓角圖,當然圓圈也行。
- 下載失敗之後,點擊重現下載
- 自訂佔位圖,自訂overlay, 或者進度條
- 指定使用者按壓時的overlay
映像的載入
Fresco 的 image pipeline 設計,允許使用者在多方面控製圖片的載入:
- 為同一個圖片指定不同的遠程路徑,或者使用已經存在本機快取中的圖片
- 先顯示一個低解析度的圖片,等高清圖下載完之後再顯示高清圖
- 載入完成回調通知
- 對於本地圖,如有EXIF縮圖,在大圖載入完成之前,可先顯示縮圖
- 縮放或者旋轉圖片
- 處理已下載的圖片
- WebP 支援
三、例子
1.使用Fresco載入網狀圖片
Android 圖片處理之 Fresco