Taille de police différente de chaînes dans le même TextView
J'ai un textView
à l'intérieur avec un nombre (variable) et un string
, comment puis-je donner le numéro un de plus grande taille que la string
?
le code:
TextView size = (TextView)convertView.findViewById(R.id.privarea_list_size);
if (ls.numProducts != null) {
size.setText(ls.numProducts + " " + mContext.getString(R.string.products));
}
Je veux ls.numproducts a une taille différente de celle du reste du texte. Comment faire?
- Depuis je n'ai pas assez de réputation pour commenter Raghunandan réponse, permettez-moi de partager une chasse aux sorcières comme une réponse distincte pour quiconque de venir à travers cette question, maintenant que la conception de matériel est sorti: Il semble que Spannables ne fonctionnent pas avec
textAllCaps=true
ensemble sur la Vue que vous 're l'application de la Spannable pour. (voir ici: stackoverflow.com/questions/29007746/...)
Vous devez vous connecter pour publier un commentaire.
Utiliser un
Spannable String
Snap shot
Vous pouvez diviser la chaîne à l'aide de l'espace et ajouter de la durée de la chaîne dont vous avez besoin.
Maintenant appliquer
span
à lastring
et ajouter le même pourtextview
.RelativeSizeSpan
?Juste au cas où vous vous demandez comment vous pouvez définir plusieurs tailles différentes dans la même textview, mais en utilisant une taille absolue et non pas un rapport, vous pouvez le faire à l'aide de
AbsoluteSizeSpan
au lieu d'unRelativeSizeSpan
.Viens d'obtenir la dimension en pixels de la taille de texte voulue
et puis créer un nouveau
AbsoluteSpan
sur la base du texteAbsoluteSizeSpan
exempleAbsoluteSizeSpan(sizeInDip, true)
pour spécifier la taille directement en dpVous pouvez obtenir ce fait à l'aide de html chaîne et le réglage de l'html à Textview à l'aide
txtView.setText(Html.fromHtml("Your html string here"));
Par exemple :
Essayer spannableStringbuilder. À l'aide de cela, nous pouvons créer des chaînes avec plusieurs tailles de police.
Méthode 1
à l'aide de
Méthode 2
à l'aide de
J'ai écrit ma propre fonction qui prend 2 cordes et 1 int (taille du texte)
Le texte intégral et la partie du texte que vous voulez changer la taille de celui-ci.
Elle renvoie une SpannableStringBuilder que vous pouvez l'utiliser en mode texte.
---------------- Résultat ---------------
Résultat :
12345.24
La meilleure façon de le faire est au format Html, sans sous-chaîne de caractères de votre texte et entièrement dynamique
Par exemple :
et vous pouvez utiliser la couleur attribut etc...
si l'autre main :