TextView中文本颜色和HTML标签<p> <h4>出现问题

4

我需要使用html代码在TextView中插入黑色文本。 这是我已经完成的代码。

String html="<font color='#000000'> <p><i>bla bla bla</i></p> <h4>bla bla bla</h4> </font>";
textView.setText(Html.fromHtml(html));

结果是正确的,除了文本颜色是灰色而不是黑色。 我注意到如果我删除

标签和

标签,颜色就会变成黑色,但整体结果当然不是我想要的。
那么,我该如何保持外观并使文本颜色为黑色?


可能有一些 CSS 与它重叠为灰色。 - Chandrakant
“font”标签在HTML4中已被弃用,在HTML5中也是一个不符合规范的特性,因此您不应该使用它。另外,您是否有样式表附加到网站上,覆盖了“p”和“h”标签的颜色? - Pete
@Daniele Vitali 请尝试我的更新答案! - Tarsem Singh
代码中没有样式表。 - Daniele Vitali
我有同样的问题。TextView中所有<p>和<h1>标签的内部文本都会变成灰色...为什么???我不想使用set颜色覆盖所有p和h1-h5标签...我的TextView文本颜色是黑色,但它被覆盖了。 - Frank
4个回答

1
<font> tag should be used inside `<p>` tag and as well as inside `<h4>` tag

所以你需要使用两个不同的<font>标签!

尝试以下代码,它肯定会起作用,因为我已经测试过了!

要么使用

String html=" <p><i><font color='#000000'>bla bla bla</font></i></p> <h4><font color='#000000'>bla bla bla</font></h4>";

或者

String html=" <p><font color='#000000'><i>bla bla bla</i></font></p> <h4><font color='#000000'>bla bla bla</font></h4>";

替换为 String html="<font color='#000000'> <p><i>bla bla bla</i></p> <h4>bla bla bla</h4> </font>";


是的,它可以工作。但一定有更快的解决方案!实际上,我有比我写的更多的<p>和<h4>标签,我必须编辑所有这些标签。我认为应该有一个更快的解决方案... - Daniele Vitali
@DanieleVitali 让我检查一下是否存在这样的解决方案! - Tarsem Singh
好的,谢谢。我已经谷歌了一下,找到了一些解决方案,但是没有一个适用于我。 - Daniele Vitali

1
你应该知道 Html.fromHtml() 仅支持 HTML 的一个小子集 -- 远不及 WebView。特别是,你不能使用 CSS 样式表。如果你的输出通过 Html.fromHtml() 到达 TextView,则你唯一的格式选项是向旧的 HTML3/4 标签添加字体颜色等。Commonsware 在这里提供了一个有用的列表:Html.fromHtml() 标签

0
以下代码对我有效,希望对你也有效:
Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");

在你的例子中这样写:

String html="<![CDATA[<font color='#000000'> <p><i>bla bla bla</i></p> <h4>bla bla bla</h4> </font>]]";
textView.setText(Html.fromHtml(html));

对我没用……文本没有改变。 - Daniele Vitali
1
然后,您需要为每个<p>标签编写单独的字体标签。 - Butani Vijay

0

我对WebView不太熟悉,但是font标签已经过时了,就像b或者i一样可能会在下一个块标签p结束。

<div style='color: #000000'> <p><i>bla bla bla</i></p> <h4>bla bla bla</h4></div>

不起作用。文本没有任何改变。 - Daniele Vitali

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