2015-11-18 13 views
8

Ich habe einfache TextView Controler auf meiner Anwendung.
In diesem textView setze ich den Text "123456789" - die Textfarbe ist schwarz.Wie ändere ich die Textfarbe des Teils des TextView?

Ich möchte, dass die drei letzten Ziffer (789) mit roter Textfarbe angezeigt wird.

Gibt es eine einfache Möglichkeit, es ohne die Verwendung von zwei Textview zu tun steuert
(ein „123456“ in schwarz enthalten wird und die zweite wird „789“ in rot enthalten)

Antwort

11

Dieses Versuchen:

Set TextView als HTMLSpannableTextView mit

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

Html.fromHtml (Text) ist veraltet, und Html.fromHtml (String, int) ist von api Level 24 verfügbar .. –

6

Sie SpannableString verwenden können ist ein ausgezeichnete Möglichkeit, Strings in einem TextView zu stylen.

Demo

SO Post

4

Sie können

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

Sie können entweder HTML-Banner in Ihrer Java-Klasse verwenden: Beispiel:

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

Oder verwenden CData Format in der XML-Datei: Beispiel:

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

Ich hoffe, dass Ihnen geholfen;)

+1

Ich weiß, SO ist das Rennen von eine Antwort schreiben ... aber sei vorsichtig, bevor du die Antwort abschickst. – Amy

+0

Entschuldigung, ich bin jetzt auf meinem Telefon und ich kann es nicht schaffen, es das HTML-Skript zeigen, das es gerade verschwindet: / –

1

können Sie diese Methode verwenden

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

dann später rufen Sie ist durch die Verwendung

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