Polices personnalisées et mises en page XML dans Android
Dans Android, les mises en page XML offrent un moyen pratique de définir une interface utilisateur. Cependant, ils n'offrent pas la possibilité de spécifier des polices personnalisées à utiliser dans les widgets. Bien que le code Java puisse être utilisé pour définir la police de widgets individuels, cette approche est lourde et prend du temps.
Police personnalisée via Extended TextView
Pour résoudre cette limitation , nous pouvons étendre la classe TextView comme :
TextViewPlus.java
public class TextViewPlus extends TextView { // Set custom font using asset file public boolean setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { return false; } setTypeface(tf); return true; } }
Déclaration d'attribut XML
Ensuite, nous déclarons l'attribut de police personnalisé dans le fichier 'attrs.xml' :
<declare-styleable name="TextViewPlus"> <attr name="customFont" format="string" /> </declare-styleable>
XML Utilisation de la mise en page
Dans la mise en page 'main.xml', nous pouvons désormais utiliser la police personnalisée dans un widget TextViewPlus :
<com.example.TextViewPlus customFont="saxmono.ttf" ... />
Mise à jour : problèmes de mémoire
Il est important de noter que cette méthode soulève des inquiétudes quant à l'utilisation de la mémoire. Chaque fois que « setCustomFont » est appelé, un nouvel objet Typeface est créé, ce qui peut entraîner des problèmes de performances. Pour les applications critiques en termes de performances, envisagez des approches alternatives ou utilisez cette solution judicieusement.
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!