[Android開源]:EasyImageGetter幫你實現帶網絡圖片的html圖文混排!

平時開發中。有時候咱們會遇到須要使用TextView加載html標籤的方式來作圖文混排。可是系統自帶的Html類。並無提供默認的img標籤解析器。而是須要本身去定義配置ImageGetter進行使用。html

EasyImageGetter組件便是提供的一種輕量且簡潔的ImageGetter實現。java

特性

  • 支持設置placeholde圖片加載時佔位圖
  • 支持設置error圖片加載失敗時的佔位圖
  • 支持指定uri進行加載。不單單侷限於網絡圖片。還包括加載本地圖片、assets圖片等。
  • 支持自定義加載器:知足各類加載需求。

用法

提供帶img標籤的文本數據

首先須要提供一個可用的帶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開源庫地址:

github.com/yjfnypeu/Ea…

EasyImageGetter組件地址:

github.com/yjfnypeu/Ea…

相關文章
相關標籤/搜索