Android - XML中定义的字符串中的不同颜色

时间:2014-02-22 21:55:59

标签: android xml android-layout fonts colors

我需要在屏幕上放置一个不同颜色的文字。

我可以这样做:

Text <font color="red">Text in red</font>

但我需要以十六进制指定颜色。

这不起作用:

Text <font color="#a22142">Text in red</font>

我已经尝试过:

  • 使用alpha指定颜色:

     Text <font color="#FFa22142">Text in red</font>
    
  • 使用CDATA

  • 在colors.xml中定义颜色,并在第一个代码中的红色位置使用它。

所以,我的问题是:

如何在strings.xml中定义的字符串中以十六进制指定颜色?

2 个答案:

答案 0 :(得分:2)

Text <font color="#a22142">Text in red</font>应该有效,你是否像下面那样使用过它?

yourTextView.setText(Html.fromHtml("Text <font color="#a22142">Text in red</font>"));

使用string.xml可能需要它:

yourTextView.setText(Html.fromHtml(getString(R.string.your_string_id)));

可能你需要使用CDATA。

P.S。一个很好的图书馆到Android颜色:https://github.com/MatthewYork/Colours

答案 1 :(得分:1)

您可以将字符串HTML设置为TextView,如:

String first = "This word is ";
String next = "<font color='#EE0000'>Text in red</font>";
yourTextView.setText(Html.fromHtml(first + next));

有关更多信息,请访问:http://daniel-codes.blogspot.in/2011/04/html-in-textviews.html