如何改变TextView部分的文本颜色?

我有我的应用程序简单的textView控制器。
在这个textView我设置文本“123456789” – 文字颜色是黑色的。

我希望最后三位数字(789)会以红色文字显示。

有没有简单的方法来做到这一点,而不使用两个textView控件
(其中一个包含“123456”,另一个包含红色的“789”)

Solutions Collecting From Web of "如何改变TextView部分的文本颜色?"

尝试这个:

使用SpannableTextViewTextView设置为HTML

 String text = "<font color='black'>123456</font><font color='red'>789</font>"; textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE); 

您可以使用SpannableString是在TextViewstring样式的绝佳方法。

演示

SO Post

您可以使用

 myTextView.setText(Html.fromHtml(stringB + "<font color=red>" + stringA + "</font>); 

你可以使用这个方法

 public static final Spannable getColoredString(Context context, CharSequence text, int color) { Spannable spannable = new SpannableString(text); spannable.setSpan(new ForegroundColorSpan(color), 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return spannable; } 

那么以后你打电话就是通过使用

 textview.append(getColoredString(this, "Hi!", ContextCompact.getColor(this, R.color.red))); textview.append(getColoredString(this, "User", ContextCompact.getColor(this, R.color.green))); 

你可以在你的java类中使用HTML横幅:例子:

  textElement.setText(Html.fromHtml("123456 <fontcolor='#FF0000'>789</font>")); 

或者在您的XML文件中使用CData格式:例如:

 <string name="numbers"><![CDATA[123456<fontcolor="#FF0000">789</font>]]></string> 

我希望能帮到你;)