平時開發中。有時候咱們會遇到須要使用TextView
加載html
標籤的方式來作圖文混排。可是系統自帶的Html
類。並無提供默認的img
標籤解析器。而是須要本身去定義配置ImageGetter
進行使用。html
此EasyImageGetter
組件便是提供的一種輕量且簡潔的ImageGetter
實現。java
placeholde
圖片加載時佔位圖error
圖片加載失敗時的佔位圖首先須要提供一個可用的帶img標籤的文本:img標籤中的地址。爲通用的uri地址,好比:android
private val html =
""" <h5>asset圖片加載示例</h5> <img src="file:///android_asset/imagegetter/cat.png"> <h5>http圖片加載示例</h5> <img src="http://www.w3school.com.cn/i/eg_tulip.jpg"> """.trimIndent()
複製代碼
能夠看到。asset圖片與網絡圖片均完美支持。固然若是須要。此處也能夠配置本地圖片進行展現git
EasyImageGetter.create().loadHtml(html, textView)
複製代碼
加載效果圖github
組件支持兩種佔位圖:bash
EasyImageGetter.create()
.setPlaceHolder(R.drawable.placeholder)// 設置在進行圖片加載時的佔位圖
.setError(R.drawable.error)// 設置在進行圖片加載失敗時的佔位圖
.loadHtml(html, textView)
複製代碼
在上面的基礎用法示例中。img
標籤中的src支持任意的uri進行展現。而內部加載器是使用的Glide
(compileOnly方式依賴)網絡
可是有時候咱們可能會須要定製本身的加載器去進行圖片解析。好比項目不支持Glide。或者src中的數據格式不爲規則的uri時。ide
這個時候就可使用額外加載器去進行自主圖片解析了:ui
val imageGetter = EasyImageGetter.create()
imageGetter.setLoader { src -> // src爲img標籤中的原始src屬性值
// 此加載器回調運行於子線程中。因此能夠在此直接進行圖片解析操做。
// 經過src數據進行自主drawable解析加載。並返回加載的drawable數據
val drawable = parseFromSrc(src)
// 若返回的drawable爲null。表示須要使用內置加載器繼續進行drawable解析。
return drawable
}
複製代碼
有時候會出現加載失敗的狀況。這時候能夠經過組件提供的關鍵字EasyImageGetter
去進行日誌過濾。便於進行問題定位編碼
EasyImageGetter是開源基礎組件集成庫EasyAndroid中的基礎組件之一。
EasyAndroid做爲一款集成組件庫,此庫中所集成的組件,均包含如下特色,你能夠放心使用~~
1. 設計獨立
組件間獨立存在,不相互依賴,且若只須要集成庫中的部分組件。也能夠很方便的
只copy對應的組件文件
進行使用
2. 設計輕巧
由於是組件集成庫,因此要求每一個組件的設計儘可能精練、輕巧。避免由於一個小功能而引入大量無用代碼.
每一個組件的方法數均
不超過100
. 大部分組件甚至不超過50
。
得益於編碼時的高內聚性
,若你只須要使用EasyImageGetter. 那麼能夠直接去拷貝EasyImageGetter源碼文件到你的項目中,直接進行使用,也是沒問題的。
EasyAndroid開源庫地址:
EasyImageGetter組件地址: