studio - Android Html.fromHtml(String) no funciona para el texto<font color=''#''></font>
textview html (11)
Estoy tratando de agregar líneas con diferentes colores a mi TextView usando etiquetas html.
Por cualquier razón,
Html.fromHtml("<font color=''#145A14''>text</font>");
No aparecerá en color en el TextView.
Asegúrate de desactivar cualquier modificador como:
android:textAllCaps="true"
Asegúrese de que su valor RGB está CAPITALIZADO. Android puede entender # 00FF00 pero no # 00ff00.
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 un poco de investigación sobre esto y descubrí que fromHtml se basa en un motor de renderización poco claro y mal documentado.
Mi respuesta implica conjeturas sobre su código, pero aquí va:
Cuando use la etiqueta de fuente: NO incluya un canal alfa para que su cadena hexadecimal se vea como "# ff123456". Si usa Integer.toHexString (), tendrá un canal alfa en ese resultado.
Funcionó cuando usé la subcadena (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>"));
no lo hare
Sí, estoy de acuerdo, a veces no funciona.
Como alternativa, uso en xml para Textview:
android:textColorLink="yourColor"
Funciona de maravilla ;)
Se ve como un color muy oscuro, ¿está seguro de que su pantalla es capaz de mostrar esos colores, por lo que puede distinguirlos del negro? El fragmento de código se ve bien, he intentado código similar muchas veces y funcionó a la perfección. Inténtalo 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>"));
Yo uso este codigo
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();
}
prueba esto y debería funcionar
textView.setText(Html.fromHtml("<font color=/"#145A14/">text</font>"));
textView.setText(Html.fromHtml("<font color=''blue''>text</font>"));
txt_description1.setText(Html.fromHtml("<font color=''rgb''>"+str_description1+"</font>"));
Si no desea un solo color estático y desea reflejar directamente desde el editor, puede usar "rgb". Reflejará el color exacto que ha establecido en el editor, solo establezca en textview
de textview
y concáltelo con el valor de vista de texto. Y estás listo para irte.
Html.fromHtml("<font color=''#145A14''>text</font>");
En lugar de lo anterior, utilice lo siguiente
Html.fromHtml("<![CDATA[<font color=''#145A14''>text</font>]]>");
Esto funcionó para mí y estoy seguro de que también funcionará para usted.
Déjame saber en caso de cualquier problema.