本教程內(nèi)容來源于:http://fresco-cn.org
采用 知識共享 署名 4.0 國際 許可協(xié)議 進(jìn)行許可
Drawees 負(fù)責(zé)圖片的呈現(xiàn),包含幾個組件,有點像MVC模式。
繼承于 View, 負(fù)責(zé)圖片的顯示。
一般情況下,使用SimpleDraweeView
即可. 簡單的用法,在這個頁面:開始使用 。
它支持很多自定義效果,參見這里: 自定義顯示效果.
繼承于 Drawable, 包含用于繪制的圖像數(shù)據(jù)。MVC中的M。
如果你想在Java代碼中自定義圖片的展示,可以通過這類實現(xiàn),具體的請參考這里: 在Java代碼中自定義顯示效果
DraweeController
負(fù)責(zé)和 image loader 交互(默認(rèn)是Fresco中 image pipeline),可以創(chuàng)建一個這個類的實例,來實現(xiàn)對所要顯示的圖片做更多的控制。
DraweeControllers
由 DraweeControllerBuilder
采用 Builder 模式創(chuàng)建,創(chuàng)建之后,不可修改。具體參見: 使用ControllerBuilder。
使用 ControllerListener 的一個場景就是設(shè)置一個 Listener監(jiān)聽圖片的下載。
Fresco 的 Image Pipeline 負(fù)責(zé)圖片的獲取和管理。圖片可以來自遠(yuǎn)程服務(wù)器,本地文件,或者Content Provider,本地資源。壓縮后的文件緩存在本地存儲中,Bitmap數(shù)據(jù)緩存在內(nèi)存中。
在5.0系統(tǒng)之后,Image Pipeline 使用`pinned purgeables*將Bitmap數(shù)據(jù)存在native 內(nèi)存中。這要求圖片不使用時,要顯示地釋放內(nèi)存。
SimpleDraweeView
自動處理了這個釋放過程,所以沒有特殊情況,盡量使用SimpleDraweeView
,在特殊的場合,如果有需要,也可以直接控制Image Pipeline。