J'ai appliqué une police personnalisée à un TextView
, mais cela ne semble pas changer la police.
Voici mon code:
Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(myTypeface);
Quelqu'un peut-il me sortir de ce problème?
android
custom-font
android-fonts
android-typeface
SERPENT À SONNETTE
la source
la source
myTextView.setTypeface(myTypeface);
Réponses:
Sur Mobiletuts +, il y a un très bon tutoriel sur la mise en forme du texte pour Android. Petit conseil: personnalisez les polices Android
EDIT: Je l'ai testé moi-même maintenant. Voici la solution. Vous pouvez utiliser un sous-dossier appelé polices mais il doit aller dans le
assets
dossier et non dans leres
dossier. AlorsAssurez-vous également que la fin de la police, je veux dire la fin du fichier de police lui-même, est en minuscules. En d'autres termes, cela ne devrait pas être le cas,
myFont.TTF
maismyfont.ttf
cette manière doit être en minusculesla source
createFromAsset
fonction pointe directement dans leassets
répertoire)Après avoir essayé la plupart des solutions décrites dans ce fil, j'ai accidentellement trouvé Calligraphy ( https://github.com/chrisjenx/Calligraphy ) - une bibliothèque de Christopher Jenkins qui vous permet d'ajouter facilement des polices personnalisées à votre application. Les avantages de sa bibliothèque par rapport aux approches suggérées ici sont:
la source
Je sais qu'il existe déjà de bonnes réponses, mais voici une mise en œuvre pleinement opérationnelle.
Voici la vue texte personnalisée:
Voici les attributs personnalisés. Cela devrait aller dans votre
res/attrs.xml
dossier:Et voici comment vous l'utilisez. J'utiliserai une mise en page relative pour l'envelopper et afficher la
customAttr
déclaration, mais cela pourrait évidemment être la mise en page que vous avez déjà.la source
customAttrs
référence dans mon projet?xmlns:customAttrs="http://schemas.android.com/apk/res-auto"
. Cela obtient automatiquement les attributs définis pour les vues personnalisées. Dans ce cas, vous avez un attribut appelé customFont défini dans attrs.xml Un moyen plus facile à comprendre est de regarderxmlns:android="http://schemas.android.com/apk/res/android"
qui définit l'espace de noms pour vos attributs Android. Donc, si vous changez cela en aua
lieu deandroid:text
ça, ce seraita:text
.J'ai déjà utilisé cela avec succès. La seule différence entre nos implémentations est que je n'utilisais pas de sous-dossier dans les actifs. Je ne sais pas si cela changera quoi que ce soit.
la source
À condition que vous ayez placé la police au bon endroit et qu'il n'y ait aucune erreur dans le fichier de police lui-même, votre code devrait fonctionner comme ça, RATTLESNAKE.
Cependant, ce serait beaucoup plus facile si vous pouviez simplement définir une police dans votre mise en page XML, comme ceci:
Avec l'accompagnement
res/values/styles.xml
:J'ai créé quelques outils spécialement à cet effet. Reportez-vous à ce projet de GitHub, ou jetez un œil à ce billet de blog qui explique le tout.
la source
La meilleure façon de le faire à partir de la version d'aperçu d'Android O est la suivante:
cela ne fonctionne que si vous avez Android Studio-2.4 ou supérieur
fenêtre Nouveau répertoire de ressources apparaît.
R.font.dancing_script
,R.font.la_la
etR.font.ba_ba
.Ensuite, nous devons créer une famille de polices:
Insérez chaque fichier de police, style et attribut d'épaisseur dans l'élément de balise de police. Le XML suivant illustre l'ajout d'attributs liés à la police dans le XML de ressource de police:
Ajout de polices à un TextView:
A partir de la documentation
Toutes les étapes sont correctes.
la source
Pour les polices personnalisées dans Android, créez un dossier dans le nom du dossier des actifs, il "polices" placez-y votre fichier fonts.ttf ou .otf souhaité.
Si vous étendez UIBaseFragment:
sinon si étend l'activité:
la source
Vous pouvez utiliser PixlUI à https://github.com/neopixl/PixlUI
importer leur .jar et l'utiliser en XML
la source
Comme je n'étais pas satisfait de toutes les solutions présentées sur SO, j'ai trouvé la mienne. C'est basé sur une petite astuce avec des balises (c'est-à-dire que vous ne pouvez pas utiliser de balises dans votre code), j'ai mis le chemin de la police là-bas. Ainsi, lorsque vous définissez des vues, vous pouvez effectuer l'une des opérations suivantes:
ou ca:
Maintenant, vous pouvez soit accéder explicitement / configurer la vue comme:
ou tout simplement configurer via:
Et quel est le cours de magie que vous demandez? Surtout collé à partir d'un autre poste SO, avec des méthodes d'assistance pour l'activité et les fragments:
la source
Malheureusement, il n'y a pas de bonne solution pour cela.
J'ai vu les nombreux articles sur l'utilisation d'un TextView personnalisé mais ce qu'ils oublient, ce n'est pas seulement les vues de texte qui peuvent implémenter des polices et il y a des vues de texte cachées dans d'autres vues inaccessibles au développeur; Je ne vais même pas commencer sur Spannable .
Vous pouvez utiliser un utilitaire de police externe comme:
Outil de police de calligraphie
MAIS cela passe en boucle sur chaque vue de l'application lors de sa création et même cet utilitaire manque certaines vues (ViewPager rend la police normale), alors vous avez le problème: lorsque Google met à jour ses outils de construction, cela se bloque parfois car il doit cibler des propriétés obsolètes. C'est aussi un peu lent car il utilise la réflexion de Java .
C'est vraiment à Google de résoudre ce problème. Nous avons besoin d'une meilleure prise en charge des polices dans Android. Si vous regardez la solution d'iOS, ils ont littéralement des centaines de polices intégrées pour sélectionner. Vous voulez une police personnalisée? Déposez simplement un TFF et il est utilisable ..
Pour l'instant se limitaient désormais à l'offre que Google nous propose qui est extrêmement limitée mais heureusement optimisée pour les mobiles.
la source
Assurez-vous de coller le code ci-dessus dans onCreate () après votre appel au super et l'appel à setContentView (). Ce petit détail m'a gardé pendant un moment.
la source
Avec Android 8.0, l' utilisation de polices personnalisées dans l'application est devenue facile
downloadable fonts
. Nous pouvons ajouter des polices directementres/font/ folder
dans le dossier du projet et, ce faisant, les polices deviennent automatiquement disponibles dans Android Studio.Maintenant, définissez l'
fontFamily
attribut sur la liste des polices ou cliquez sur plus et sélectionnez la police de votre choix. Cela ajoutera unetools:fontFamily="@font/your_font_file"
ligne à votre TextView.Cela générera automatiquement quelques fichiers.
1. Dans le dossier de valeurs, il sera créé
fonts_certs.xml
.2. Dans Manifest, il ajoutera ces lignes:
3.
preloaded_fonts.xml
la source
Vous pouvez utiliser la bibliothèque tierce EasyFonts facile et simple pour définir une variété de polices personnalisées pour votre
TextView
. En utilisant cette bibliothèque, vous ne devriez pas avoir à vous soucier du téléchargement et de l'ajout de polices dans le dossier assets / fonts. Également à propos de la création d'objets Fonte.Au lieu de
Simplement:
Cette bibliothèque fournit également la police de caractères suivante.
la source
J'ai eu le même problème, le TTF ne s'est pas présenté. J'ai changé le fichier de police et avec le même code ça marche.
la source
Si vous souhaitez charger la police à partir du réseau ou la styliser facilement, vous pouvez utiliser:
https://github.com/shellum/fontView
Exemple:
la source
Eh bien, après sept ans, vous pouvez changer toute l'application
textView
ou ce que vous voulez facilement en utilisant lesandroid.support
bibliothèques 26 ++.Par exemple:
Créez votre package de polices app / src / res / font et déplacez votre police dedans.
Et dans le thème de votre application, ajoutez-le simplement en tant que police
Exemple à utiliser avec
textView
uniquement:Et ajoutez à votre thème principal:
Actuellement, cela fonctionne sur 8.1 à 4.1 API Jelly Bean Et c'est une large gamme.
la source
Mise à jour de la réponse: Android 8.0 (API niveau 26) introduit une nouvelle fonctionnalité, les polices en XML. utilisez simplement la fonction Polices en XML sur les appareils exécutant Android 4.1 (API niveau 16) et supérieur, utilisez la bibliothèque de support 26.
voir ce lien
Ancienne réponse
Il existe deux façons de personnaliser les polices:
Voie 1: Type de réfraction typographie ||| meilleur moyen
appeler FontsOverride.setDefaultFont () dans la classe étend l'application, ce code entraînera la modification de toutes les polices logicielles, même les polices Toasts
AppController.java
FontsOverride.java
Méthode 2: utilisez setTypeface
pour une vue spéciale, il suffit d'appeler setTypeface () pour changer la police.
CTextView.java
FontUtils.java
la source
La façon correcte de le faire à partir de l'API 26 est décrite dans la documentation officielle ici:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
Cela implique de placer les fichiers ttf dans le dossier res / font et de créer un fichier de famille de polices.
la source
La solution Android la plus simple prise en charge maintenant!
Utilisez une police personnalisée en xml:
détails du look:
https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml.html
la source
TextView txt = (TextView) findViewById(R.id.txt_act_spalsh_welcome); Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Aramis Italic.ttf"); txt.setTypeface(font);
le nom de la police doit être correct et s'amuser
la source
Oui, les polices téléchargeables sont si faciles, comme l'a dit Dipali .
Voici comment vous le faites ...
TextView
.fontFamily
liste déroulante. S'il n'est pas là, trouvez le truc caret (le> et cliquez dessus pour le développertextAppearance
) sous le.font-family
déroulante.more fonts
Google Fonts
Add font to project
BONUS: Si vous souhaitez un style tout avec du texte dans votre application avec la police choisie, il suffit d' ajouter
<item name="android:fontfamily">@font/fontnamehere</item>
dans votrestyles.xml
la source