[Android开源]:EasyImageGetter帮你实现带网络图片的html图文混排!
平时开发中。有时候我们会遇到需要使用TextView
加载html
标签的方式来做图文混排。但是系统自带的Html
类。并没有提供默认的img
标签解析器。而是需要自己去定义配置ImageGetter
进行使用。
此EasyImageGetter
组件即是提供的一种轻量且简洁的ImageGetter
实现。
特性
- 支持设置
placeholde
图片加载时占位图 - 支持设置
error
图片加载失败时的占位图 - 支持指定uri进行加载。不仅仅局限于网络图片。还包括加载本地图片、assets图片等。
- 支持自定义加载器:满足各种加载需求。
用法
提供带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)
加载效果图
![[Android开源]:EasyImageGetter帮你实现带网络图片的html图文混排!](https://static.blogweb.cn/article/9fa7c2483e3541a5aa93b1ce11d319c1.webp)
配置占位图
组件支持两种占位图:
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是开源基础组件集成库EasyAndroid中的基础组件之一。
EasyAndroid作为一款集成组件库,此库中所集成的组件,均包含以下特点,你可以放心使用~~
1. 设计独立
组件间独立存在,不相互依赖,且若只需要集成库中的部分组件。也可以很方便的
只copy对应的组件文件
进行使用
2. 设计轻巧
因为是组件集成库,所以要求每个组件的设计尽量精练、轻巧。避免因为一个小功能而引入大量无用代码.
每个组件的方法数均
不超过100
. 大部分组件甚至不超过50
。
得益于编码时的高内聚性
,若你只需要使用EasyImageGetter. 那么可以直接去拷贝EasyImageGetter源码文件到你的项目中,直接进行使用,也是没问题的。
EasyAndroid开源库地址:
EasyImageGetter组件地址:
转载自:https://juejin.cn/post/6844903685223350286