Quel est l'équivalent de “android:fontFamily=”sans-serif-lumière" dans le code Java?
Ma question est assez simple:
Dans chaque de mon textview, je suis actuellement en utilisant l'attribut
android:fontFamily="sans-serif-light"
de fournir un look superbe sur le post HC appareils.
Malheureusement, cela ne fonctionne pas avec tous les widget et pour mes Spinners, j'ai besoin de remplacer la Carte.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//You can use the new tf here.
if(convertView == null || convertView.getTag() == null) {
//new view - populate
convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false);
convertView.setTag(new Object());
}
CheckedTextView spinner_text=(CheckedTextView) convertView.findViewById(android.R.id.text1);
//Typeface should be set here...
return spinner_text;
}
}
Alors, est-il un moyen d'obtenir exactement le même résultat par le code?
PS: Non, je ne veux pas mettre une police de caractères dans le fichier actif, je veux juste utiliser un système.
Vous devez vous connecter pour publier un commentaire.
Il devrait être possible avec
setTypeface()
etTypeface.create()
:Voir Docs:
Remarque que trop à l'aide de
Typeface.create()
est mauvais pour votre mémoire, comme indiqué dans ce commentaire. Le suggéré de table de hachage est une bonne solution, mais vous devez le modifier un peu, car vous n'avez pas à créer une police de caractères à partir d'un actif.Si vous utilisez res -> dossier de polices, vous pouvez l'utiliser comme ceci
À mon avis, il y a toujours un moyen d'appliquer le système de polices par programmation sur TextView sans avoir aucun problème de mémoire et c'est à l'aide de
textview.setTextAppearance
méthode :android:fontFamily
nécessite API 16.TextViewCompat.setTextAppearance(textView, R.style.styleA)
.Dynamiquement, vous pouvez définir le fontfamily similaire à android:fontFamily en xml à l'aide de ce,
Ce sont la liste des police par défaut famille, de l'utilisation de tout cela en remplaçant le double du devis chaîne "sans-serif-moyen"
"mycustomfont.ttf" est la ttf fichier. Chemin sera en src/assets/fonts/mycustomfont.ttf , vous pouvez vous référer davantage à propos de la police par défaut dans ce Famille de polices par défaut
Il serait possible à l'aide de
setTypeface(Typeface tf, int style)
méthode deTextView
classe.spinner_text.setTypeface(Typeface.SANS_SERIF,Typeface.NORMAL);
Option 1 - API 26 et plus
Option 2 - API 16 et plus
Vérifiez la pleine expiation à Guide Pour Les Développeurs Android.