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