2016-06-20 11 views
2
 SpannableString text = new SpannableString("RAHUL"); 
     text.setSpan(new ForegroundColorSpan(white), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     text.setSpan(new ForegroundColorSpan(blue), 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     headerHolder.mTextViewLabel.setText(text, TextView.BufferType.SPANNABLE); 

Ich bekomme nur "HL" als Ausgabe.Ich versuche, auf Marshamallow spannbar zu verwenden. Es gibt mir falsche Ausgabe

+0

, was den Fehler –

+0

Erwarteter Ausgang ändern ist RAHUL in zwei verschiedenen Farben, dh RAH in Weiß und UL in Blau. – Rahul

+1

Dies liegt daran, dass sowohl "weiß" als auch "blau" 0 sind (oder mindestens 24-31 sind Nullen) – pskink

Antwort

0

Ihre Start- und Ziel Argumente sind falsch für das zweite setSpan:

SpannableString text = new SpannableString("RAHUL"); 
text.setSpan(new ForegroundColorSpan(Color.WHITE), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
text.setSpan(new ForegroundColorSpan(Color.BLUE), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
headerHolder.mTextViewLabel.setText(text, TextView.BufferType.SPANNABLE); 
3

dieses Datum mit Ausgang

SpannableString text = new SpannableString("RAHUL"); 
     text.setSpan(new ForegroundColorSpan(Color.WHITE), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
     text.setSpan(new ForegroundColorSpan(Color.BLUE), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

     tv.setText(text); 

Ausgabe auf Eibisch

enter image description here

Hoffe, es wird Ihnen helfen,

+0

Ich benutze Buttermesser zum Einspritzen von Farben. @BindColor (R.color.blue) int blau; @BindColor (R.color.white) int weiß; Ich denke, ein Problem damit.Wenn ich Color.BLUE stattdessen verwenden, funktioniert es. – Rahul

0

Versuchen Sie dies es Ihnen helfen können

text.setSpan(new ForegroundColorSpan(white), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    text.setSpan(new ForegroundColorSpan(blue), 3, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

anstelle dieses

text.setSpan(new ForegroundColorSpan(white), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    text.setSpan(new ForegroundColorSpan(blue), 3, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);