Comment append des fonts externes à une application Android

Je cherchais des fonts élégantes pour mon application Android. mais le problème est comment puis-je rendre mon application Android supportable pour les fonts externes.

Je vous remercie.

Vous devez créer un dossier de fonts dans le dossier des ressources de votre projet et y insérer votre TTF. Puis dans votre activité onCreate ()

TextView myTextView=(TextView)findViewById(R.id.textBox); Typeface typeFace=Typeface.createFromAsset(getAssets(),"fonts/mytruetypefont.ttf"); myTextView.setTypeface(typeFace); 

Veuillez noter que tous les TTF ne fonctionneront pas. Pendant que j’expérimentais, cela ne fonctionnait que pour un sous-ensemble (sous Windows, ceux dont le nom est écrit en petites majuscules).

Vous pouvez utiliser le TextView personnalisé pour une application complète avec une police personnalisée.

 public class MyTextView extends TextView { Typeface normalTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_REGULAR); Typeface boldTypeface = Typeface.createFromAsset(getContext().getAssets(), Constants.FONT_BOLD); public MyTextView(Context context, AtsortingbuteSet attrs, int defStyle) { super(context, attrs, defStyle); } public MyTextView(Context context, AtsortingbuteSet attrs) { super(context, attrs); } public MyTextView(Context context) { super(context); } public void setTypeface(Typeface tf, int style) { if (style == Typeface.BOLD) { super.setTypeface(boldTypeface/*, -1*/); } else { super.setTypeface(normalTypeface/*, -1*/); } } } 

Créez un dossier nommé fonts dans le dossier des ressources et ajoutez l’extrait du lien ci-dessous.

 Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); textview.setTypeface(tf); 

Pour mettre en œuvre, vous devez utiliser la police de caractères avec exemple ci-dessous

 Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Roboto/Roboto-Regular.ttf"); for (View view : allViews) { if (view instanceof TextView) { TextView textView = (TextView) view; textView.setTypeface(typeface); } } } 

La manière la plus simple d’y parvenir est de regrouper la ou les fonts souhaitées avec votre application. Pour ce faire, créez simplement un dossier / dossier dans la racine du projet et placez vos fonts (dans TrueType ou TTF) dans les ressources. Vous pouvez, par exemple, créer des actifs / fonts / et y placer vos fichiers TTF.

Ensuite, vous devez indiquer à vos widgets d’utiliser cette police. Malheureusement, vous ne pouvez plus utiliser le XML de mise en page pour cela, car le XML ne connaît pas les fonts que vous avez peut-être dissimulées en tant qu’actif d’application. Au lieu de cela, vous devez modifier le code Java en appelant Typeface.createFromAsset (getAssets (), «fonts / HandmadeTypewriter.ttf»), puis en prenant l’object de police créé et en le transmettant à votre TextView via setTypeface ().

Pour plus de référence, voici le tutoriel où j’ai eu ceci:

http://www.androidguys.com/2008/08/18/fun-with-fonts/

Je recommande cette approche très pratique en ajoutant le nom de la police personnalisée dans la typeface de typeface à styles.xml et en plaçant votre jeu de fonts dans le dossier assets .

Un autre point en plus des réponses ci-dessus. Lorsque vous utilisez une police dans un fragment, l’instanciation de la police doit être effectuée dans la méthode onAttach (override) comme indiqué ci-dessous:

 @Override public void onAttach(Activity activity){ super.onAttach(activity); Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontname.ttf"); } 

Raison :
Il y a un court laps de temps avant qu’un fragment soit attaché à une activité. Si la méthode CreateFromAsset est appelée avant d’attacher un fragment à une activité, une erreur se produit.