Riche de texte dans un textview
J'ai besoin de créer une "Info" pour mon programme. Je voudrais remplir le texte d'info avec plusieurs couleurs, le style des polices, ecc.
J'ai trouvé ceci: http://www.chrisumbel.com/article/android_textview_rich_text_spannablestring
est-il une autre façon de (mieux) facile de faire cela?
merci!
Vous devez vous connecter pour publier un commentaire.
À la lecture de votre question titre, j'étais prêt à vous donner un lien pour que exact de l'article. J'ai trouvé à l'aide d'extensions et
SpannableString
être assez puissant. L'alternative serait d'utiliser la mise en forme HTML de votre texte, ce qui peut être fait avec Html.fromHtml().Cependant, Ce n'est pas exactement clair ce qui les balises HTML sont pris en charge, étant donné que la documentation s'écrit simplement:
Donc, pour une bonne solution, je serais certainement aller avec le
SpannableString
approche dans l'article. Cette méthode est très pratique dans la pratique, car vous pouvez aussi faire votre propre durée de classes qui étendent existantes (par exemple, si vous voulez avoir une section de texte utiliser une police personnalisée qui n'est pas intégré).J'ai écrit une bibliothèque au cours du week-end qui gère cela, je l'ai appelé un RichTextView.
La bibliothèque vous permet de formater une durée de texte (mettre en gras, souligné, italique, combinaison, etc) ainsi que de la couleur (couleur du texte et le mettre en surbrillance). Dans la prochaine version, j'ai l'intention de permettre une police personnalisée s'étend et comme le bien.
À utiliser, c'est simple, il suffit d'ajouter le suivant dépendance à votre gradle fichier:
Maintenant, disons que vous voulez faire les quatre premiers caractères gras, vous pouvez simplement faire l'appel suivant:
Avis que la fin de l'index paramètre n'est pas compris, en disant (0 -> 4) en réalité, nous sommes en gras, les index (0 -> 3).
Si vous voulez faire les deux en gras et souligné, l'utilisation d'un EnumSet:
Pour les dernières informations, veuillez consulter le dépôt Github lié ci-dessus, mais je vais essayer de mettre à jour cette réponse tout le temps, il devient obsolète.
Quand j'ai eu besoin de texte mis en forme dans le passé, j'ai créé un fichier html avec mise en forme, il coincé dans res/raw répertoire et chargé dans une WebView. Je n'ai jamais essayé avec différentes polices de caractères avant si vous ne savez pas si cela fonctionnera, mais le gras et l'italique, etc fonctionnera.