2015-11-18 16 views
8

Ho un controllo di testo semplice sulla mia applicazione.
Su questo TextView ho impostato il testo "123456789" - il colore del testo è nero.Come cambiare il colore del testo della parte di TextView?

Desidero che le ultime tre cifre (789) vengano visualizzate con il colore del testo rosso.

Esiste un modo semplice per farlo senza l'utilizzo di due textView controlla
(uno conterrà "123456" in nero e il secondo conterrà "789" in rosso)

risposta

11

Try This:

Impostare TextView come HTML utilizzando SpannableTextView

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

Html.fromHtml (testo) è obsoleto e Html.fromHtml (String, int) è disponibile dal livello di API 24 .. –

6

È possibile utilizzare SpannableString è un ottimo modo per creare stringhe in uno TextView.

Demo

SO Post

4

È possibile utilizzare

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

È possibile utilizzare banner HTML nella classe Java: Esempio:

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

Oppure utilizzare il formato DatiC nel file XML: Esempio:

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

Spero che ti ha aiutato;)

+1

So che lo è anche la gara di pubblicare una risposta ... ma attenzione prima di inviare la risposta. – Amy

+0

Scusa se sono sul mio telefono ora e non riesco a farlo mostrare lo script HTML appena scomparso: / –

1

È possibile utilizzare questo metodo

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

poi si chiama è quello di utilizzare

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