È possibile concatenare due o più campate. In questo modo è più facile colorare il testo dinamico usando il valore della lunghezza.
SpannableStringBuilder span1 = new SpannableStringBuilder("Android");
ForegroundColorSpan color1=new ForegroundColorSpan(getResources().getColor(R.color.colorPrimary));
span1.setSpan(color1, 0, span1.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
SpannableStringBuilder span2 = new SpannableStringBuilder("Love");
ForegroundColorSpan color2=new ForegroundColorSpan(getResources().getColor(R.color.colorSecondary));
span2.setSpan(color2, 0, span2.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
Spanned concatenated=(Spanned) TextUtils.concat(span1," => ",span2);
SpannableStringBuilder result = new SpannableStringBuilder(concatenated);
TextView tv = (TextView) rootView.findViewById(R.id.my_texview);
tv.setText(result, TextView.BufferType.SPANNABLE);
fonte
2016-03-25 06:11:05
possibile duplicato di [come posso cambiare parte il colore di un TextView?] (Http://stackoverflow.com/questions/4032676/ how-can-i-change-color-part-of-a-textview) –
Se c'è un testo lungo in TextView, c'è [un modo più efficiente] (http://stackoverflow.com/a/34449956/ 3414180) – Mingfei
Possibile duplicato di [Imposta colore della spaziatura TextView in Android] (http://stackoverflow.com/questions/3282940/set-color-of-textview-span-in-android) – Suragch