Android TextView支持哪些HTML标签?

Android的TextView类可以通过HTML.fromHtml()来显示格式化的文本,如下面的例子所示: TextView的string中的HTML标签

TextView类只能处理HTML的一小部分,但我不知道支持哪些标记和属性,哪些不支持。 这里给出的总结: http : //commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html似乎并不正确。 例如<div align =“…”>不适用于我使用Android 2.2

我注意到这篇文章:

http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html

列表<div>被Html.fromHtml()支持,但是不支持“align”属性。

(其他支持的属性显示在该页面上的标签。)

作者说他通过在Android的git仓库中查看代码来构build参考。

编辑:随着时间的推移,它似乎支持的标签列表已经改变。 请稍后查看这篇文章,例如: http : //www.grokkingandroid.com/android-quick-tip-formatting-text-with-html-fromhtml/ 。

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

为所有人search它。

date:2017年7月

来源: https : //android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/Html.java

Html.fromHtml支持:

  • p
  • UL
  • DIV
  • 跨度
  • 强大
  • b
  • EM
  • 引用
  • DFN
  • 一世
  • 字形
  • 块引用
  • TT
  • 一个
  • ü
  • 德尔
  • 小号
  • 罢工
  • SUP
  • H1
  • H2
  • H3
  • H4
  • H5
  • H6
  • IMG
  • (感谢Carlo Conserva的贡献)

对于strings.xml文件中的string使用CData部分来得到HTML内容的实际显示的TextView的下面的代码片段的最佳方法将给你公平的想法。

//在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方法格式化文本之后,string文本中的CData部分也可以保持html标记数据不变。 所以,Html.fromHtml(str)工作正常,你会看到欢迎消息中的粗体文本。

输出:

欢迎到您最喜爱的音乐应用程序商店。 以用户名login

由于它不断更新,追踪Android支持哪些HTML标签的最好方法是检查Html.java的源代码

 if ( android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { tvDocument.setText(Html.fromHtml(bodyData,Html.FROM_HTML_MODE_LEGACY)); } else { tvDocument.setText(Html.fromHtml(bodyData)); } 

在这里input链接描述