Android HTML class 支持哪些 HTML 标签?如何使用 HtmlCompat?

Which HTML tags are supported by the Android HTML class and how do I use HtmlCompat?

我正在寻找 Android Html class 支持的 HTML 标签和属性的简明描述,特别是那些由 [=20= 处理的标签]Html#fromHtml()。官方文档指出 "not all HTML tags are supported," 但这并不是很有帮助。我在网上找到的其他文档似乎已过时,而且几乎没有提及受支持的属性。

此外,我认为我应该使用 HtmlCompat 而不是 Html,但我不清楚 是什么HtmlCompat 可以。文档指出 HtmlCompat 是 "backwards compatible version of Html," 但这是什么意思?当 运行 在 API 级别低于 24 的设备上时,我希望 HtmlCompat#fromHtml() 接受与 Html 相同的标签在 API 24+ 设备上使用,但它不会。

Html兼容性

我们先看看HtmlCompat。使用支持库 class(现在是 AndroidX)的一个原因是“在平台的 运行 早期版本的设备上支持最新的平台功能。”通过查看 HtmlCompatsource code,很明显它提供的向后兼容性是允许调用 HtmlCompat#fromHtml()(字符串源, int 标志).

[HtmlCompat#fromHtml(String, int)] invokes Html#fromHtml(String, int) on API 24 and newer, otherwise flags are ignored and Html#fromHtml(String) is used.

HtmlCompat#toHtml(跨文本, 整数选项).

所以,HtmlCompat不提供对API以下版本新支持标签的支持API24。事实上,有HtmlCompat 支持的标签和 Html 的平台版本对于任何 API级。

HTML Html/HtmlCompat

支持的标签

(有点过时)

更新:请参阅 here 以获得更多 up-to-date 文档,其中包含以下内容。我还添加了有关 Android 对 HTML 标签的原生支持的信息。 (2021 年 12 月)

AndroidHtmlHtmlCompatclasses支持以下HTML 以 API 24 开头的标签。以下内容基于对 API 29 中 Html class 的检查。

支持 href 标签。

<大>
<块引用> 1


<引用>
<德尔>

>1

支持颜色和字体属性。

1

支持带有 Html#ImageGetter.
的 src 标签
  • >1 2

    1 2

    <小>
    <跨度>2

    <罢工>
    <子>
    <超级>