首页 > 解决方案 > ImageSpan 在某些 API 级别中在图像上方添加空间

问题描述

我使用 将 HTML 字符串转换为 spannable HtmlCompat.fromHtml(...)ImageGetter我使用的只是使用 Glide 下载图像。通过ContextCompat.getDrawable(...)用于比较,它确实给出了相似的结果。

在 API 级别 16 的模拟器中,它正确显示如下:

API 16 中的 ImageSpan

然而,在 API 级别 28 的模拟器中,它会在图像上方提供额外的空间,如下所示:

API 28 中的 ImageSpan

有人能帮我解决这个不一致的问题吗?谢谢你。


代码片段

val spanned = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY, Html.ImageGetter {
    ContextCompat.getDrawable(context, drawableResId)?.apply {
        setBounds(0, 0, intrinsicWidth, intrinsicHeight)
    }
}, tagHandler)

标签: androidfromhtml

解决方案


推荐阅读