J'essaie d'ajouter des lignes avec des couleurs différentes à mon TextView en utilisant des balises html.
Pour quelque raison que ce soit,
Html.fromHtml("<font color='#145A14'>text</font>");
n'apparaîtra pas en couleur dans TextView.
Html.fromHtml("<font color='#145A14'>text</font>");
Au lieu de ci-dessus, veuillez utiliser ce qui suit
Html.fromHtml("<![CDATA[<font color='#145A14'>text</font>]]>");
Cela a fonctionné pour moi et je suis sûr que cela fonctionnera également pour vous.
Faites-moi savoir en cas de problème.
Ma réponse implique des conjectures sur votre code, mais voici:
Lorsque vous utilisez la balise font: N'incluez PAS de canal alpha pour que votre chaîne hexadécimale ressemble à "# ff123456". Si vous utilisez Integer.toHexString (), vous aurez un canal alpha dans ce résultat.
Cela a fonctionné lorsque j'ai utilisé substring (2) sur ma chaîne hexadécimale de rescource.
Pour résumer:
text.setText(Html.fromHtml("<font color='#123456'>text</font>"));
fonctionnera, mais:
text.setText(Html.fromHtml("<font color='#ff123456'>text</font>"));
habitude!
Assurez-vous de désactiver tous les modificateurs tels que:
Android:textAllCaps="true"
La méthode fromHtml est extrêmement limitée en termes de balises HTML qu'elle prend en charge, et la police n'en fait pas partie. Voir http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html pour une liste non officielle. J'ai fait moi-même des recherches à ce sujet et j'ai découvert que fromHtml est basé sur un moteur de rendu obscur et mal documenté.
J'utilise ce code
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();
}
Cela ressemble à une couleur très sombre, êtes-vous sûr que votre écran est capable d'afficher de telles couleurs, vous pouvez donc les distinguer du noir? L'extrait de code semble bon, j'ai essayé plusieurs fois un code similaire et cela a fonctionné comme un charme. Essayez-le avec un peu plus lumineux, c'est-à-dire # ff0000 (rouge), pour vérifier que cela fonctionne:
TextView text = ... // find or instantinate your text view.
text.setText(Html.fromHtml("<font color='#ff0000'>text</font>"));
textView.setText(Html.fromHtml("<font color='blue'>text</font>"));
Assurez-vous que votre valeur RVB est CAPITALISÉE. Android peut comprendre # 00FF00 mais pas # 00ff00.
Ouais je suis d'accord, ça ne marche pas parfois.
Comme alternative, j'utilise en xml pour Textview:
Android:textColorLink="yourColor"
fonctionne comme un charme;)
essayez ceci et cela devrait fonctionner
textView.setText(Html.fromHtml("<font color=\"#145A14\">text</font>"));
txt_description1.setText(Html.fromHtml("<font color='rgb'>"+str_description1+"</font>"));
Si vous ne voulez pas une seule couleur statique et que vous souhaitez refléter directement depuis l'éditeur, vous pouvez utiliser "rgb". Il reflétera la couleur exacte que vous avez définie dans l'éditeur, il suffit de la définir dans textview
et concat
avec la valeur textview. Et vous êtes prêt à partir.