TypefaceHelper est une bibliothèque open-source conçue pour simplifier l'application de polices personnalisées aux vues textuelles sous Android. Elle facilite l'application de polices depuis les assets à l'ensemble des TextView et leurs sous-classes (telles que Button, RadioButton, EditText, etc.), tout en prévenant les fuites de mémoire potentiellement causées par la création directe de Typeface via les ressources.
Mise en œuvre rapide
Ajout de la dépendance
Intégrez TypefaceHelper à votre projet Android en ajoutant la dépendance suivante au fichier build.gradle de votre module :
dependencies {
implementation 'com.drivemode:typefacehelper:1.2.0@aar'
}
Initialisation et Utilisation
Initialisez TypefaceHelper dans la méthode onCreate de votre classe Application. Il est crucial d'appeler la méthode destroy lors de la terminaison de l'application pour libérer les ressources.
public class MonApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
TypefaceHelper.initialize(this);
}
@Override
public void onTerminate() {
TypefaceHelper.destroy();
super.onTerminate();
}
}
Dans une activité, vous pouvez assigner une police spécifique à une TextView :
public class MaActivite extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_principal);
TextView vueTexte = findViewById(R.id.texte_bonjour);
TypefaceHelper.getInstance().setTypeface(vueTexte, "chemin/vers/ma_police.ttf");
}
}
Alternativement, pour appliquer une police à toutes les vues textuelles du layout courant de l'activité, utilisez cette approche :
setContentView(TypefaceHelper.getInstance().setTypeface(this, R.layout.layout_principal, "chemin/vers/ma_police.ttf"));
Cas d'usage et bonnes pratiques
Application globale de polices
Pour garantir une uniformité typographique dans toute l'application, il est conseilllé de gérer la configuration des polices dans une classe Activity de base. Cela évite la répétition de code et assure la cohérence.
public abstract class ActiviteBase extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
TypefaceHelper.getInstance().setTypeface(this, "chemin/vers/police_globale.ttf");
}
protected abstract int getLayoutId();
}
Prévention des fuites mémoire
TypefaceHelper centralise la gestion des polices, automatisant le traitement des références aux objets Typeface, ainsi prévenant les problèmes de fuites mémoire liés à une gestion manuelle directe.
Contexte et Évolution
TypefaceHelper est un composant utile pour les développeurs Android visant à personnaliser la typographie de leurs applications. Il s'intègre bien avec des frameworks UI comme Material Design pour créer une identité visuelle cohérente. Bien que ce projet semble avoir été archivé, indiquant une absence de maintainance active, il a historiquement servi de solution pratique pour la personnalisation des interfaces utilisateur dans de nombreuses applications Android.