Frage Wie ändere ich die Textfarbe des Teils von TextView?


Ich habe einen einfachen textView controler auf meiner Anwendung.
In dieser Textansicht setze ich den Text "123456789" - die Textfarbe ist schwarz.

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

Gibt es eine einfache Möglichkeit, dies zu tun, ohne zwei textView-Steuerelemente zu verwenden
(Einer wird "123456" in schwarz enthalten und der zweite wird "789" in rot enthalten)


8
2017-11-18 06:13


Ursprung


Antworten:


Versuche dies:

einstellen TextView Als ein HTML verwenden SpannableTextView

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

11
2017-11-18 06:16



Sie können verwenden SpannableString ist eine hervorragende Möglichkeit, Strings in einem TextView.

Demo

SO Post


6
2017-11-18 06:14



Sie können verwenden

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

4
2017-11-18 06:20



Sie können 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;
    }

später rufst du dann mit

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

2
2018-01-16 08:00



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

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

Oder verwenden Sie das CData-Format in Ihrer XML-Datei: Beispiel:

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

Ich hoffe das hat dir geholfen;)


0
2017-11-18 06:25