En utilisant les Polices de caractères au format XML , vous pouvez spécifier différentes polices de poids pour une famille de police. Par exemple:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<font android:font="@font/archivo_narrow_regular" android:fontWeight="400" android:fontStyle="normal"
app:font="@font/archivo_narrow_regular" app:fontWeight="400" app:fontStyle="normal"/>
<font android:font="@font/archivo_narrow_regular_italic" android:fontWeight="400" android:fontStyle="italic"
app:font="@font/archivo_narrow_regular_italic" app:fontWeight="400" app:fontStyle="italic"/>
<font android:font="@font/archivo_narrow_medium" android:fontWeight="500" android:fontStyle="normal"
app:font="@font/archivo_narrow_medium" app:fontWeight="500" app:fontStyle="normal"/>
<font android:font="@font/archivo_narrow_medium_italic" android:fontWeight="500" android:fontStyle="italic"
app:font="@font/archivo_narrow_medium_italic" app:fontWeight="500" app:fontStyle="italic"/>
<font android:font="@font/archivo_narrow_semibold" android:fontWeight="600" android:fontStyle="normal"
app:font="@font/archivo_narrow_semibold" app:fontWeight="600" app:fontStyle="normal"/>
<font android:font="@font/archivo_narrow_semibold_italic" android:fontWeight="600" android:fontStyle="italic"
app:font="@font/archivo_narrow_semibold_italic" app:fontWeight="600" app:fontStyle="italic"/>
<font android:font="@font/archivo_narrow_bold" android:fontWeight="700" android:fontStyle="normal"
app:font="@font/archivo_narrow_bold" app:fontWeight="700" app:fontStyle="normal"/>
<font android:font="@font/archivo_narrow_bold_italic" android:fontWeight="700" android:fontStyle="italic"
app:font="@font/archivo_narrow_bold_italic" app:fontWeight="700" app:fontStyle="italic"/>
</font-family>
Mais je ne peux pas comprendre comment faire usage de chacun de ces poids; soit dans un format XML (présentation/style) de fichier, ou dans du code Java. N'est pas leur fontWeight
attribut disponible pour TextView
, et l' Typeface
objet créé à partir d' ResourcesCompat.getFont(context, R.font.archivo_narrow)
a aucune mention de police de poids.
Je me rends compte que je peux juste spécifier les polices de caractères particulières de ressources (c'est à dire R.font.archivo_narrow_semibold
), mais alors quel est l'intérêt d'avoir un fontWeight
de l'attribut dans l' font-family
?
Mise à jour
Une nouvelle statique create(Typeface family, int weight, boolean italic)
méthode a été ajouté dans l'API de Niveau 28, avec un getWeight()
méthode d'instance. Cette offre enfin la possibilité de faire usage de la fontWeight
d'attribut dans du code Java; mais seulement pour les API de Niveau 28 et au-dessus, je n'ai pas trouvé d'analogues dans la bibliothèque de prise en charge.
C'est utile-et montre que l' fontWeight
attribut n'a pas lieu d'être dans le passé-mais je voudrais vraiment être en mesure d'utiliser le poids en XML style.