Voici mon code et ma capture d'écran. J'essaie de définir une police de caractères personnalisée, mais une exception d'exécution survient. L'actif de la police est introuvable lorsque le fichier de police est dans le dossier de l'actif. Est-ce que je manque quelque chose?
Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);
J'ai essayé un autre fichier de police qui a bien fonctionné. Je conclus donc que le fichier de police précédent était corrompu. Merci @Miduhun MP, @Gowtham Raj et @jagan Reddy
le nom du dossier doit être 'fonts' pas 'font'
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);
Votre dossier d'actif de police n'est pas nommé correctement. Vous devez nommer le dossier fonts
et non font
. Changez aussi votre code:
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/terminal.ttf");
Si vous utilisez Instant Run avec le plugin Android Gradle version 2.2.0-alphaX, il s'agit d'un bogue connu.
Une solution de contournement consiste à désactiver Instant Run jusqu'à ce que le problème soit résolu.
Vous pouvez le suivre ici: https://code.google.com/p/Android/issues/detail?id=212849&can=1&q=subcomponent%3DTools-Studio%20-has%3Aproject%20attachments%3D0&colspec=ID% 20Status% 20Priority% 20Owner% 20Summary% 20Stars% 20Reporter% 20Opened & start = 7700
Erreur courante lorsque vous avez des actifs dans votre projet et que vous utilisez les versions alpha d'AS. Cela semble être un bug dans le système de construction de studio Android. Une solution simple consiste à nettoyer le projet avant de l'exécuter, ce qui devrait résoudre le problème auquel vous êtes confronté.
J'ai eu le même problème et j'ai réussi à le réparer. À l'origine, je pensais que les fichiers de polices étaient corrompus, mais ils ne l'étaient pas. Ensuite, j'ai pensé qu'Android Studio n'aimait pas les fichiers .ttf
, car ils étaient les seuls à ne pas fonctionner. Il s'avère qu'il n'y a rien de mal avec les polices.
CORRECTIF: cliquez simplement sur Build > Clean project
. J'ai tout de suite résolu le problème pour moi.
Typeface typeface = Typeface.createFromAsset (this.getAssets (), "font/terminal.ttf");
((TextView) findViewById (R.id.weatherHeadingTV)). SetTypeface (police de caractères);
Pour moi, le fichier de police lui-même était corrompu. J'ai essayé un autre pour le faire fonctionner.
Si vous utilisez AndroidAnnotations, dans l'application build.gradle, vérifiez si le dossier des actifs est correct: ex: main/src/assets.
Si vous changez de police, désinstallez votre application de votre appareil/émulateur et exécutez-le à nouveau.
Code:
public static void setFontFace(Context context, TextView textView) {
Typeface type = Typeface.createFromAsset(context.getAssets(), "myfont.ttf");
textView.setTypeface(type);
}
J'ai eu le problème que les polices .woff ne sont pas acceptées sur Android 7+. Je suis donc passé aux polices .ttf.