TextView 显示html¶
假设我们有一段html文本,要显示像浏览器一样的效果。 对于简单的html文本,我们可以使用TextView来显示。
使用¶
上手很简单,使用Html.fromHtml()
把html文本转换再交给setText
。
html文本如下,这里指定“color”文字为红色。
浏览器显示效果:
Tell me the color
Java中需要对双引号转义一下。
private static final String T1 = "<p>Tell me the <font color=\"red\">color</font></p>";
tv1.setText(Html.fromHtml(T1));
手机上显示效果。
默认支持的标签¶
Html.fromHtml()
支持一些标签,例如<font>
<p>
等等。
但是不支持style
。
例如下面这段html文本,标签中带有style(内联样式)。
Tell me the
Java代码。
private static final String H1 = "<p>Tell me the <text style=\"color: blue; font-weight: bold;\">color</text>.</p>";
tv2.setText(Html.fromHtml(H1));
手机显示效果如下
可以看到html中style指定的字体颜色和加粗并没有显示出来。
要想让它正常显示,需要改为
浏览器效果如下Tell me the color.
Java代码
private static final String H1_FIX = "<p>Tell me the <b><font color=\"blue\">color</font></b>.</p>";
tv3.setText(Html.fromHtml(H1_FIX));
可以看出,支持<p>
<b>
<font>
标签。据不完全统计,支持的标签如下。
p
ul
li
div
span
strong
b
em
cite
dfn
i
big
small
font
blockquote
tt
a
u
del
s
strike
sup
sub
h1
h2
h3
h4
h5
h6
img
br
目前很多html中都使用了内联样式,而且前端开发中不赞成使用<font>
标签。
但Html.fromHtml
中的默认转换器并不支持内联样式。这样前端写的html文本,放在Android TextView上就失去了很多显示效果。
可以考虑使用WebView加载Html文本。
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~