本教程內(nèi)容來源于:http://fresco-cn.org
采用 知識(shí)共享 署名 4.0 國際 許可協(xié)議 進(jìn)行許可
本頁說明如何設(shè)置實(shí)現(xiàn)不同的圖片呈現(xiàn)效果。
除了要加載的圖片,其他各個(gè)設(shè)置都可以在xml中指定。在xml中指定的時(shí)候,可以是drawable/下的資源,也可以顏色。
在Java 代碼中也可以指定。如果需要 通過程序設(shè)定 的話會(huì)接觸到這個(gè)類: GenericDraweeHierarchyBuilder
通過代碼設(shè)置是,設(shè)置的值可以是資源id,也可以是Drawable的子類。
創(chuàng)建完GenericDraweeHierarchy之后,也可以通過該類的相關(guān)方法,重新設(shè)置一些效果。
大多數(shù)的用戶呈現(xiàn)不同效果的drawables都是可以縮放的.
除了需要加載的圖片是真正必須的,其他的都是可選的。如前所述,圖片可以來自多個(gè)地方。
所需加載的圖片實(shí)際是DraweeController的一個(gè)屬性,而不是DraweeHierarchy的屬性。
可使用setImageURI方法或者通過設(shè)置DraweeController 來進(jìn)行設(shè)置。
對(duì)于要加載的圖片,除了可以設(shè)置縮放類型外,DraweeHierarchy 還公開出一些其他方法用來控制顯示效果:
默認(rèn)的縮放類型是: centerCrop
在調(diào)用setController 或者 setImageURI 之后,占位圖開始顯示,直到圖片加載完成。
對(duì)于漸進(jìn)式格式的JPEG圖片,占位圖會(huì)顯示直到滿足已加載的圖片解析度到達(dá)設(shè)定值。
XML 中屬性值: placeholderImage
Hierarchy builder中的方法: setPlaceholderImage
Hierarchy method: setPlaceholderImage
默認(rèn)值: a transparent ColorDrawable
默認(rèn)縮放類型: centerInside
如果URI是無效的,或者下載過程中網(wǎng)絡(luò)不可用,將會(huì)導(dǎo)致加載失敗。當(dāng)加載圖片出錯(cuò)時(shí),你可以設(shè)置一個(gè)出錯(cuò)提示圖片。
XML 中屬性值: failureImage
Hierarchy builder中的方法: setFailureImage
默認(rèn)值: The placeholder image
默認(rèn)縮放類型: centerInside
在加載失敗時(shí),可以設(shè)置點(diǎn)擊重新加載。這時(shí)提供一個(gè)圖片,加載失敗時(shí),會(huì)顯示這個(gè)圖片(而不是失敗提示圖片),提示用戶點(diǎn)擊重試。
在ControllerBuilder 中如下設(shè)置:
.setTapToRetryEnabled(true)
加載失敗時(shí),image pipeline 會(huì)重試四次;如果還是加載失敗,則顯示加載失敗提示圖片。
XML 中屬性值: retryImage
Hierarchy builder中的方法: setRetryImage
默認(rèn)值: The placeholder image
默認(rèn)縮放類型: centerInside
設(shè)置一個(gè)進(jìn)度條圖片,提示用戶正在加載。目前,進(jìn)度條僅僅是提示正在loading,和加載進(jìn)度無關(guān)。
XML 中屬性值: progressBarImage
Hierarchy builder中的方法: setProgressBarImage
默認(rèn)值: None
默認(rèn)縮放類型: centerInside
背景圖會(huì)最先繪制,在XML中只可以指定一個(gè)背景圖,但是在JAVA代碼中,可以指定多個(gè)背景圖。
當(dāng)指定一個(gè)背景圖列表的時(shí)候,列表中的第一項(xiàng)會(huì)被首先繪制,繪制在最下層,然后依次往上繪制。
背景圖片不支持縮放類型,會(huì)被強(qiáng)制到Drawee尺寸大小。
XML 中屬性值: backgroundImage
Hierarchy builder中的方法: setBackground, setBackgrounds
默認(rèn)值: None
默認(rèn)縮放類型: N/A
疊加圖會(huì)最后被繪制。
和背景圖一樣,XML中只可以指定一個(gè),如果想指定多個(gè),可以通過JAVA代碼實(shí)現(xiàn)。
當(dāng)指定的疊加圖是一個(gè)列表的時(shí)候,列表第一個(gè)元素會(huì)被先繪制,最后一個(gè)元素最后被繪制到最上層。
同樣的,不支持各種縮放類型。
XML 中屬性值: overlayImage
Hierarchy builder中的方法: setOverlay, setOverlays
默認(rèn)值: None
默認(rèn)縮放類型: N/A
同樣不支持縮放,用戶按壓DraweeView時(shí)呈現(xiàn)。
XML 中屬性值: pressedStateOverlayImage
Hierarchy builder中的方法: setPressedStateOverlay
默認(rèn)值: None
默認(rèn)縮放類型: N/A