如何在多色文本视图中制作我的文本?

how to make my text in textview with multi color?

我正在 android studio 上构建一个应用程序,它具有特定计算的结果,我需要在结果中用红色做一些注释,请参见示例:

考虑一下 (r1,r2,r3) 是字符串

result.setText ( "creat result" +
"\n salaz " + r1+
"\n jalf " +r2+
"\n mdar" +r3 

);  

结果:

salaz 20 mg

jalf 10 mg

mdar 5 mg

所以我需要 10 毫克红线的 jalf

需要这条红色线"\n jalf " +r2+"

有什么办法让它变红吗?!!?

我不确定这是否可行,但理论上应该可行。

Spannable r1Span = new SpannableString(r1);
Spannable r2Span = new SpannableString(r2);
Spannable r3Span = new SpannableString(r3);

r1Span.setSpan(new ForegroundColorSpan(Color.RED), 0, r1.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
r2Span.setSpan(new ForegroundColorSpan(Color.RED), 0, r2.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
r3Span.setSpan(new ForegroundColorSpan(Color.RED), 0, r3.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);

String result = TextUtils.concat("creat result" +
"\n salaz " + r1Span+
"\n jalf " +r2Span+
"\n mdar" +r3Span); 

result.setText (result); 

让我知道进展如何。

使用

int colorRed = getResources().getColor(R.color.red); 
String text = getString(R.string.text);
SpannableString spannable = new SpannableString(text); // here we set the color
spannable.setSpan(new ForegroundColorSpan(colorBlue), 0, text.length(), 0);

yourTextView.setText(spannable);

在这里处理长度,直到你想设置颜色的地方

试一试,如果有效请告诉我:

YOUR_TEXTVIEW.setText(Html.fromHtml("<font color=\"#006400\">" + "Price: $" + _price + "   " + "</font>" + "&nbsp;&nbsp;&nbsp;" + "<font color=\"#3F23F5\">" + "Rooms:  " + _room+ "&nbsp;&nbsp;&nbsp;" +  "</font>"
                                     + "     " + "<font color=\"#DF7401\">" + "District:  " + _district + "</font>"));