2011-06-08 14 views
17

Quiero mostrar '123' pero 1 en color rojo 2 en verde y 3 en negro ... ¿Es posible, o hay alguna otra forma recomendada de mostrar diferente color de texto en la misma vista de texto ...¿Puede la vista de texto tener letras en diferentes colores?

+0

No tengo el código pero puede ser d uno que usa texto html – ingsaurabh

+0

¿por qué eso? usted hace una distribución lineal e infla texteview insade tiene muchas como quiera: D – PedroAGSantos

Respuesta

2

Ah me pareció utilizar a continuación el código

myTextView.setText(Html.fromHtml(html text having 1 in red 2 in green and so on)); 

No sé web para que consulte a un mejor alguien que puede escribir html para usted: P

+0

tnx, aquí hay algo más coplete String styledText = " asd"; cache.timeView.setText (Html.fromHtml (styledText)); – Lukap

+2

No creo que el uso de html sea el camino correcto. – Kaj

+1

¿Por qué el html no es el camino correcto @Kaj? – Alesqui

60

Sí, puede tener diferentes colores en diferentes lugares del texto si está usando SpannableString. Ejemplo:

SpannableString text = new SpannableString("Lorem ipsum dolor sit amet"); 
// make "Lorem" (characters 0 to 5) red 
text.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0); 
textView.setText(text, BufferType.SPANNABLE); 

Hay un ejemplo más completo here.

Javadoc for SpannableString

+1

Su respuesta debe marcarse como la correcta (no es que la marcada como correcta no lo es, pero esta es la aproximación correcta). – Leeeeeeelo

1

Puede imprime líneas con múltiples colores sin html como este :)

TextView TV = (TextView)findViewById(R.id.mytextview01); 

    Spannable WordtoSpan = new SpannableString("Your message");   

WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, WordtoSpan .length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

TV.setText(WordtoSpan); 
Cuestiones relacionadas