[Android開源]:EasyImageGetter幫你實現帶網路圖片的html圖文混排!
平時開發中。有時候我們會遇到需要使用 TextView
載入 html
標籤的方式來做圖文混排。但是系統自帶的 Html
類。並沒有提供預設的 img
標籤解析器。而是需要自己去定義配置 ImageGetter
進行使用。
此 EasyImageGetter
元件即是提供的一種輕量且簡潔的 ImageGetter
實現。
特性
placeholde error
用法
提供帶img標籤的文字資料
首先需要提供一個可用的帶img標籤的文字:img標籤中的地址。為通用的uri地址,比如:
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圖片與網路圖片均完美支援。當然如果需要。此處也可以配置本地圖片進行展示
建立例項並進行展示:
EasyImageGetter.create().loadHtml(html, textView) 複製程式碼
載入效果圖

配置佔位圖
元件支援兩種佔位圖:
EasyImageGetter.create() .setPlaceHolder(R.drawable.placeholder)// 設定在進行圖片載入時的佔位圖 .setError(R.drawable.error)// 設定在進行圖片載入失敗時的佔位圖 .loadHtml(html, textView) 複製程式碼
配置額外載入器
在上面的基礎用法示例中。 img
標籤中的src支援任意的uri進行展示。而內部載入器是使用的 Glide
(compileOnly方式依賴)
但是有時候我們可能會需要定製自己的載入器去進行圖片解析。比如專案不支援Glide。或者src中的資料格式不為規則的uri時。
這個時候就可以使用額外載入器去進行自主圖片解析了:
val imageGetter = EasyImageGetter.create() imageGetter.setLoader { src -> // src為img標籤中的原始src屬性值 // 此載入器回撥運行於子執行緒中。所以可以在此直接進行圖片解析操作。 // 通過src資料進行自主drawable解析載入。並返回載入的drawable資料 val drawable = parseFromSrc(src) // 若返回的drawable為null。表示需要使用內建載入器繼續進行drawable解析。 return drawable } 複製程式碼
日誌定位
有時候會出現載入失敗的情況。這時候可以通過元件提供的關鍵字 EasyImageGetter
去進行日誌過濾。便於進行問題定位
開源地址
EasyImageGetter是開源基礎元件整合庫 Android" rel="nofollow,noindex">EasyAndroid 中的基礎元件之一。
EasyAndroid 作為一款整合元件庫,此庫中所整合的元件,均包含以下特點,你可以放心使用~~
1. 設計獨立
元件間獨立存在,不相互依賴,且若只需要整合庫中的部分元件。也可以很方便的 只copy對應的元件檔案
進行使用
2. 設計輕巧
因為是元件整合庫,所以要求每個元件的設計儘量精練、輕巧。避免因為一個小功能而引入大量無用程式碼.
每個元件的方法數均 不超過100
. 大部分元件甚至 不超過50
。
得益於編碼時的 高內聚性
,若你只需要使用EasyImageGetter. 那麼可以直接去拷貝 EasyImageGetter原始碼檔案 到你的專案中,直接進行使用,也是沒問題的。
EasyAndroid開源庫地址:
EasyImageGetter元件地址: