2015-11-18 22 views
8

Mam prosty kontroler textView na mojej aplikacji.
W tym tekścieObserwuję tekst "123456789" - kolor tekstu jest czarny.Jak zmienić kolor tekstu części TextView?

Chcę, aby ostatnia cyfra (789) była wyświetlana z czerwonym kolorem tekstu.

Czy istnieje prosty sposób to zrobić bez użycia dwa TextView kontroluje
(jeden będzie zawierał „123456” w czerni i drugi będzie zawierać „789” w kolorze czerwonym)

Odpowiedz

11

Spróbuj to:

Ustaw TextView jako HTML użyciu SpannableTextView

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

Html.fromHtml (tekst) jest przestarzała i Html.fromHtml (String, int) jest dostępny z poziomu api 24 .. –

6

Można użyć SpannableString jest doskonały sposób na stylizowanie napisów w TextView.

Demo

SO Post

4

Można użyć

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

Można użyć banery HTML w swojej klasie Java: Przykład:

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

Albo użyć formatu CDATA w pliku XML: Przykład:

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

Mam nadzieję, że pomogłem;)

+1

wiem SO jest rasą zamieszczanie odpowiedzi ... ale należy zachować ostrożność przed przesłaniem odpowiedzi. – Amy

+0

Niestety jestem teraz w moim telefonie i nie udaje mi się pokazać, że skrypt HTML po prostu znika: / –

1

można użyć tej metody

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

potem dzwonisz jest za pomocą

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