Android Html.fromHtml (String) no funciona para <font color = '#'> text </ font>

Estoy intentando agregar líneas con diversos colores a mi TextView usando las etiquetas del html.

Por cualquier razón,

Html.fromHtml("<font color='#145A14'>text</font>"); 

No aparecerá coloreado en el TextView.

 Html.fromHtml("<font color='#145A14'>text</font>"); 

En lugar de arriba, utilice los siguientes

 Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>"); 

Esto funcionó para mí y estoy seguro de que también funcionará para usted.

Avísame en caso de cualquier problema.

Mi respuesta implica conjeturas acerca de su código, pero aquí va:

Cuando utilice la etiqueta de fuente: NO incluya un canal alfa para que su cadena hexadecimal se vea como "# ff123456". Si utiliza Integer.toHexString (), tendrá un canal alfa en ese resultado.

Funcionó cuando usé substring (2) en mi cadena hexadecimal de rescource.

Para resumir:

 text.setText(Html.fromHtml("<font color='#123456'>text</font>")); 

Funcionará, pero:

 text.setText(Html.fromHtml("<font color='#ff123456'>text</font>")); 

¡costumbre!

Asegúrese de desactivar cualquier modificador como:

 android:textAllCaps="true" 

El método fromHtml es extremadamente limitado en términos de las etiquetas HTML que admite, y la fuente no es una de ellas. Consulte http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html para obtener una lista no oficial. Hice una cierta investigación en esto yo mismo, y encontré que fromHtml se basa en un motor de representación oscuro y mal documentado.

Que se ve como un color muy oscuro, ¿está seguro de que su pantalla es capaz de mostrar estos colores, por lo que puede distinguirlos de negro? El fragmento de código se ve bien, he intentado código similar muchas veces y funcionó como un encanto. Pruebe con algo más brillante, es decir # ff0000 (rojo), para verificar que funciona:

 TextView text = ... // find or instantinate your text view. text.setText(Html.fromHtml("<font color='#ff0000'>text</font>")); 

Asegúrese de que su valor RGB es CAPITALIZED. Android puede entender # 00FF00 pero no # 00ff00.

 textView.setText(Html.fromHtml("<font color='blue'>text</font>")); 

Prueba esto y debería funcionar

  textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>")); 

Sí estoy de acuerdo, no funciona a veces.

Como alternativa, uso en xml para Textview:

 android:textColorLink="yourColor" 

Funciona de maravilla 😉

txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));

Si no desea un único color estático y desea reflejar directamente desde el editor puede utilizar "rgb". Reflejará el color exacto que usted ha fijado en el redactor, apenas fijado en textview y concat él con valor del textview. Y ya está listo.

Yo uso este código

 Html.fromHtml(convertToHtml("<font color='#145A14'>text</font>")); public String convertToHtml(String htmlString) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("<![CDATA["); stringBuilder.append(htmlString); stringBuilder.append("]]>"); return stringBuilder.toString(); } 
  • Cómo aumentar el espacio entre párrafos en una vista de texto
  • Cómo eliminar el espacio superior y inferior en la vista de texto de Android
  • LineSpacingMultiplier y maxLines cortan la última línea, android textview
  • Cómo leer el archivo de texto en android desde la web?
  • Single TextView con texto coloreado múltiple
  • Fundido de fondo de un android de vista de texto
  • TextView.setTextSize se comporta anormalmente - Cómo establecer el tamaño de texto de textview dinámicamente para diferentes pantallas
  • En un Android TextView, ¿es posible insertar párrafos?
  • ¿Cómo hacer que el texto se mueva de izquierda a derecha en Android?
  • No puede desplazar el ViewPager al tocar TextView (con android: gravity = "center") en él
  • ¿Es posible escalar drawableleft & drawableright en textview?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.