Android Html.fromHtml(String)不适用于<font color =“#”> text </font>

时间:2011-06-19 04:49:52

标签: android textview

我正在尝试使用html标签向TextView添加不同颜色的线条。

无论出于何种原因,

    Html.fromHtml("<font color='#145A14'>text</font>");

不会在TextView中显示为彩色。

12 个答案:

答案 0 :(得分:50)

Html.fromHtml("<font color='#145A14'>text</font>");

请使用以下

代替上述内容
Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");

这对我有用,我相信它也适合你。

如有任何问题,请与我联系。

答案 1 :(得分:23)

我的回答是关于你的代码的猜测,但是这里有:

使用字体标记时:请勿包含Alpha通道,以使十六进制字符串看起来像“#ff123456”。如果使用Integer.toHexString(),则该结果中将包含alpha通道。

当我在rescource的十六进制字符串上使用substring(2)时,它有效。

总结一下:

text.setText(Html.fromHtml("<font color='#123456'>text</font>"));

会奏效,但是:

text.setText(Html.fromHtml("<font color='#ff123456'>text</font>"));

不会!

答案 2 :(得分:20)

确保关闭任何修饰符,如:

android:textAllCaps="true"

答案 3 :(得分:5)

fromHtml方法在其支持的HTML标记方面极为有限,而字体不是其中之一。有关非官方列表,请参阅http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html。我自己做了一些研究,我发现fromHtml基于一个模糊且记录不清的渲染引擎。

答案 4 :(得分:4)

我使用此代码

Html.fromHtml(convertToHtml("<font color='#145A14'>text</font>"));

public String convertToHtml(String htmlString) {

    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("<![CDATA[");
    stringBuilder.append(htmlString);
    stringBuilder.append("]]>");
    return stringBuilder.toString();
}

答案 5 :(得分:2)

看起来像一个非常深的颜色,你确定你的屏幕能够显示这样的颜色,所以你可以将它们与黑色区分开来吗?代码片段看起来不错,我多次尝试过类似的代码,它就像一个魅力。尝试使用更亮一些,即#ff0000(红色),以验证它是否有效:

TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));

答案 6 :(得分:2)

textView.setText(Html.fromHtml("<font color='blue'>text</font>"));

答案 7 :(得分:1)

尝试这个,它应该有效

 textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>"));

答案 8 :(得分:1)

确保您的RGB值为CAPITALIZED。 Android可以理解#00FF00而不是#00ff00。

答案 9 :(得分:1)

是的,我同意,它有时不起作用。

作为替代方案,我在xml中使用Textview:

android:textColorLink="yourColor"

就像魅力一样;)

答案 10 :(得分:0)

txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));

如果您不想要单一的静态颜色并希望直接从编辑器反映,您可以使用&#34; rgb&#34;。它将反映您在编辑器中设置的确切颜色,只需在textviewconcat中设置textview值即可。 你们都准备好了。

答案 11 :(得分:0)

对于带有超链接URL的彩色文本:

textView.setText(Html.fromHtml("You agree to our <font color='#F20000'><a href='https://www.yoururl.com'> Terms of Service</a></font> and <font color='#F20000'><a href='https://www.yoururl.com'>Privacy Policy</a></font>", Html.FROM_HTML_MODE_LEGACY), TextView.BufferType.SPANNABLE);

这对我有用,我相信它也将对所有人有用。