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值连接即可。 你们都准备好了。