Android TextView 支持哪些 HTML 标签?

75

1
Android String仅支持少量HTML标签。本文将帮助您了解Android支持的HTML标签 - user3274221
4个回答

66

5
标签在此行中列出:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java#791 - Christopher Perry
2
如果他们能够添加<pre>标签,我就不必使用WebView来显示开源许可证了。 - TheRealChx101

25

我注意到这篇文章:

https://web.archive.org/web/20171118200650/http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html

将 <div> 标签列为 Html.fromHtml() 支持的标签之一,但它没有显示对 "align" 属性的支持。

(该页面上的其他支持属性也已列出。)

作者说他是通过查看 Android 的 Git 存储库中的代码来构建参考资料的。

编辑: 随着时间的推移,似乎支持的标签列表发生了变化。例如,参见以下近期文章:http://www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml/

结合这两篇文章,我建议检查源代码似乎是获取最新信息的最可靠方法。


此列表不完整或不是最新的。例如,<h1><h2>等也被支持! - scai

12

使用CData部分的最佳方法来处理strings.xml文件中的字符串,以便在TextView中获得实际显示的HTML内容,下面的代码片段将为您提供公正的想法。

//在string.xml文件中

<string name="welcome_text"><![CDATA[<b>Welcome,</b> to the forthetyroprogrammers blog Logged in as:]]> %1$s.</string>

Java代码

String welcomStr=String.format(getString(R.string.welcome_text),username);
tvWelcomeUser.setText(Html.fromHtml(welcomStr));

使用String.format方法格式化文本后,字符串中的CData部分可以保持html标签数据不变。因此,Html.fromHtml(str)可以正常工作,您将在欢迎消息中看到粗体文本。

输出:

欢迎来到您最喜爱的音乐应用商店。已登录为:用户名


3
此方法已在API 24级中弃用,请改用fromHtml(String,int)。 - z3ntu
@z3ntu 你看过它的源代码吗?它调用了更新的API。此外,在旧的Android设备上,那是唯一可用的API。 - TheRealChx101

5

由于更新频繁,追踪 Android 支持的 HTML 标签最好的方式是查看 Html.java 的源代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接