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

时间:2015-11-18 06:13:25

标签: android

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

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

有没有简单的方法可以在不使用两个textView控件的情况下执行此操作 (一个将包含黑色的“123456”,第二个将包含红色的“789”)

6 个答案:

答案 0 :(得分:13)

试试这个:

使用TextView

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

答案 1 :(得分:6)

您可以使用 SpannableString 来设置TextView中字符串的样式。

Demo

SO Post

答案 2 :(得分:5)

您可以使用

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

答案 3 :(得分:2)

您可以使用此方法

fmt.Println(cmd[3] == ":hey", cmd[3][1:] == "hey")

然后你打电话使用

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;
    }

答案 4 :(得分:0)

您可以在java类中使用HTML横幅: 例如:

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

或者在XML文件中使用CData格式: 示例:

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

我希望能帮到你;)

答案 5 :(得分:0)

你可以使用这个。

textview.setText(Html.fromHtml(getString(R.string.stringname) + "" + " *" + "", Html.FROM_HTML_MODE_LEGACY));