Android multi color w jednym widoku tekstowym [duplikat]

Możliwy duplikat:
Czy można mieć wiele stylów wewnątrz widoku tekstowego?

Chcę, aby mój TextView pokazywał część tekstu na czerwono, a inne na czarno. Jego treść (tekst) jest tworzona dynamicznie i nie wiem, ile słów będzie kolorowanych na Czerwono.

Czy Jest jakiś sposób, aby to zrobić jak w html-css?

Author: Community, 2012-04-13

3 answers

Możesz użyć Spannable, aby osiągnąć to, czego chcesz.

String text = "This is <font color='red'>red</font>. This is <font color='blue'>blue</font>.";
textView.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
 84
Author: Costi Muraru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-13 12:40:01

Try this way

    TextView tv = (TextView)findViewById(R.id.tv);

    Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");        
    wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    wordtoSpan.setSpan(new ForegroundColorSpan(Color.RED), 5, 10, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv.setText(wordtoSpan);
 75
Author: Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-10 09:16:35

To czego w zasadzie chcesz to SpannableString

Zobacz to dla pełnego przykładu:

 6
Author: Arif Nadeem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-13 12:44:12