Maison > Java > javaDidacticiel > Comment puis-je personnaliser les polices dans les mises en page XML Android ?

Comment puis-je personnaliser les polices dans les mises en page XML Android ?

Mary-Kate Olsen
Libérer: 2024-12-13 12:54:16
original
361 Les gens l'ont consulté

How Can I Customize Fonts in Android XML Layouts?

Personnalisation des polices dans les mises en page XML (Android)

Comme vous l'avez remarqué, la définition de polices de widget dans les mises en page XML n'est actuellement pas prise en charge dans Android. Au lieu de cela, les polices ne peuvent être spécifiées qu'à l'aide de celles installées par le système.

Solutions alternatives

Pour surmonter cette limitation, vous disposez de quelques options :

  • Personnalisation manuelle en code Java : Vous pouvez définir manuellement la police de widgets individuels à l'aide de leurs identifiants uniques. Bien que cette méthode soit précise, elle peut devenir fastidieuse et prendre beaucoup de temps lorsque vous travaillez avec plusieurs widgets.
  • Personnalisation itérative dans le code Java : Au lieu de définir manuellement les polices, vous pouvez parcourir tous les widgets. en Java et ajustez leurs polices en conséquence. Cependant, cette approche peut potentiellement avoir un impact sur les performances, en particulier pour les mises en page complexes comportant de nombreux widgets.

Extension TextView personnalisée

Pour simplifier le processus de personnalisation, envisagez d'étendre la Classe TextView comme indiqué ci-dessous :

TextViewPlus.java :

public class TextViewPlus extends TextView {
    ...

    private void setCustomFont(Context ctx, String asset) {
        Typeface tf = null;
        try {
            tf = Typeface.createFromAsset(ctx.getAssets(), asset);
        } catch (Exception e) {
            ...
        }
        setTypeface(tf);
    }
}
Copier après la connexion

attrs.xml :

<declare-styleable name="TextViewPlus">
    <attr name="customFont" format="string"/>
</declare-styleable>
Copier après la connexion

main .xml :

<LinearLayout ...>
    <com.example.TextViewPlus
        android:customFont="saxmono.ttf"
        ...
    />
</LinearLayout>
Copier après la connexion

Avec cette extension, vous pouvez spécifier des polices dans les mises en page XML en définissant l'attribut customFont pour chaque widget. Le fichier saxmono.ttf doit être placé dans le dossier assets.

Remarque importante

Il convient de noter que l'utilisation de cette méthode peut entraîner des problèmes de mémoire. Voir le commentaire de chedabob pour plus de détails.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal