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

我想用不同的颜色添加行到我的TextView使用HTML标签。

无论什么原因,

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

在TextView中不会显示颜色。

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

而不是上面,请使用以下

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

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

如有任何问题,请告知我。

我的答案涉及你的代码猜测,但是这里有:

当您使用字体标签时:请勿包含Alpha通道,以便您的hexstring看起来像“#ff123456”。 如果使用Integer.toHexString(),那么在该结果中将会有一个alpha通道。

它工作时,我从rescource我的hexstringsubstring(2)。

总结一下:

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

将工作,但:

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

惯于!

确保closures任何修饰符,如:

 android:textAllCaps="true" 

fromHtml方法在它所支持的HTML标签方面是非常有限的,字体不是其中之一。 请参阅http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html获取非官方列表。; 我自己做了一些研究,我发现HTML是基于一个晦涩难懂的渲染引擎。

这看起来像一个非常黑暗的颜色,你确定你的屏幕能够显示这样的颜色,所以你可以区分他们从黑色? 代码片段看起来不错,我已经尝试了类似的代码多次,它的工作就像一个魅力。 尝试一下比较明亮,即#ff0000(红色),以validation它的工作原理:

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

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

我使用这个代码

 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(); } 
 textView.setText(Html.fromHtml("<font color='blue'>text</font>")); 

试试这个,它应该工作

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

是的,我同意,有时候这是行不通的。

作为替代scheme,我在XML中使用Textview:

 android:textColorLink="yourColor" 

奇迹般有效 ;)

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

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