Étant donné que mon exigence est de remplacer le textView existant findViewById(getResources().getIdentifier("xxx", "id", "android"));
, je ne peux donc pas simplement essayer une onDraw()
autre réponse.
Mais je viens de comprendre les étapes correctes pour résoudre mon problème, voici le résultat final de Layout Inspector:
Puisque ce que je voulais, c'est simplement supprimer les espaces supérieurs, donc je n'ai pas à choisir une autre police pour supprimer les espaces inférieurs.
Voici le code critique pour le corriger:
Typeface mfont = Typeface.createFromAsset(getResources().getAssets(), "fonts/myCustomFont.otf");
myTextView.setTypeface(mfont);
myTextView.setPadding(0, 0, 0, 0);
myTextView.setIncludeFontPadding(false);
La première clé est la police personnalisée "fonts / myCustomFont.otf" qui a l'espace en bas mais pas en haut, vous pouvez facilement le comprendre en ouvrant le fichier otf et en cliquant sur n'importe quelle police dans Android Studio:
Comme vous pouvez le voir, le curseur en bas a un espacement supplémentaire mais pas en haut, donc cela a résolu mon problème.
La deuxième clé est que vous ne pouvez pas simplement ignorer le code , sinon cela pourrait ne pas fonctionner. C'est la raison pour laquelle vous pouvez trouver certaines personnes commenter qu'une réponse fonctionne et d'autres personnes commentent que cela ne fonctionne pas.
Illustrons ce qui se passera si j'en supprime un.
Sans setTypeface(mfont);
:
Sans setPadding(0, 0, 0, 0);
:
Sans setIncludeFontPadding(false);
:
Sans 3 d'entre eux (c'est-à-dire l'original):