Fresco ——專爲ANDROID加載圖片

Fresco是來自Facebook開源的Android圖片加載庫,跟之前的Image Loader相比,提供了不少有用的新特性。html

關於 Fresco

Fresco 是一個強大的圖片加載組件。
Fresco 中設計有一個叫作 image pipeline 的模塊。它負責從網絡,從本地文件系統,本地資源加載圖片。爲了最大限度節省空間和CPU時間,它含有3級緩存設計(2級內存,1級文件)。
Fresco 中設計有一個叫作 Drawees 模塊,方便地顯示loading圖,當圖片再也不顯示在屏幕上時,及時地釋放內存和空間佔用。
Fresco 支持 Android2.3(API level 9) 及其以上系統。git

特性

內存管理

解壓後的圖片,即Android中的Bitmap,佔用大量的內存。大的內存佔用勢必引起更加頻繁的GC。
在5.0如下,GC將會顯著地引起界面卡頓。
在5.0如下系統,Fresco將圖片放到一個特別的內存區域。固然,在圖片不顯示的時候,佔用的內存會自動被釋放。這會使得APP更加流暢,減小因圖片內存佔用而引起的OOM。
Fresco 在低端機器上表現同樣出色,你不再用因圖片內存佔用而思前想後。github

圖片的漸進式呈現

漸進式的JPEG圖片格式已經流行數年了,漸進式圖片格式先呈現大體的圖片輪廓,而後隨着圖片下載的繼續,呈現逐漸清晰的圖片,這對於移動設備,尤爲是慢網絡有極大的利好,可帶來更好的用戶體驗。
Android 自己的圖片庫不支持此格式,可是Fresco支持。使用時,和往常同樣,僅僅須要提供一個圖片的URI便可,剩下的事情,Fresco會處理。web

Gif圖和WebP格式

是的,支持加載Gif圖,支持WebP格式。swift

圖像的呈現

Fresco 的 Drawees 設計,帶來一些有用的特性:
* 自定義居中焦點(對人臉等圖片顯示很是有幫助)
* 圓角圖,固然圓圈也行。
* 下載失敗以後,點擊重現下載
* 自定義佔位圖,自定義overlay, 或者進度條
* 指定用戶按壓時的overlay緩存

圖像的加載

Fresco 的 image pipeline 設計,容許用戶在多方面控制圖片的加載:
* 爲同一個圖片指定不一樣的遠程路徑,或者使用已經存在本地緩存中的圖片
* 先顯示一個低解析度的圖片,等高清圖下載完以後再顯示高清圖
* 加載完成回調通知
* 對於本地圖,若有EXIF縮略圖,在大圖加載完成以前,可先顯示縮略圖
* 縮放或者旋轉圖片
* 處理已下載的圖片
* WebP 支持微信

瞭解更多

相關博客: Fresco的發佈
下載 Fresco
文檔
GitHub的源碼網絡

本文轉載自: http://fresco-cn.org/post

歡迎關注個人微信公衆號,分享Android 開發,IOS開發,Swift開發和互聯網內容
微信號:APP開發者
spa

相關文章
相關標籤/搜索