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
Mary-Kate Olsenoriginal
2024-12-13 12:54:16403parcourir

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);
    }
}

attrs.xml :

<declare-styleable name="TextViewPlus">
    <attr name="customFont" format="string"/>
</declare-styleable>

main .xml :

<LinearLayout ...>
    <com.example.TextViewPlus
        android:customFont="saxmono.ttf"
        ...
    />
</LinearLayout>

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!

Déclaration:
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