Les valeurs valides pour android:fontFamily et ce qu'ils ont de la carte?
dans la réponse à cette question l'Utilisateur liste les valeurs pour android:fontFamily
et 12 variantes (voir ci-dessous). D'où viennent ces valeurs proviennent de? La documentation pour android:fontFamily
ne contient pas ces informations (j'ai coché ici , et ici ). Les cordes sont listées dans les styles Android .xml fichier à divers endroits, mais comment ces map retour à la police Roboto?
d'android 4.1 / 4.2, Les Familles De polices Roboto suivantes sont disponible:
android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed android:fontFamily="sans-serif-thin" // roboto thin (android 4.2) android:fontFamily="sans-serif-medium" // roboto medium (android 5.0)
en combinaison avec ce
android:textStyle="normal|bold|italic"
12 variantes sont possibles:
- Régulier
- Italique
- Bold
- Gras-italique
- Lumière
- Lumière-italique
- Mince
"1519240920 Minces" italique- régulier condensé
- italique condensé
- Condensed bold
- Condensed bold-italic
dans le fichier styles.xml
dans l'application, je travaille sur quelqu'un qui a indiqué que c'était la famille des polices, et je suis presque sûr que c'est faux:
<item name="android:fontFamily">Roboto-Regular.ttf</item>
j'aimerais que le thème de notre application soit configuré correctement (ce qui inclut l'utilisation de fontFamily correctement) et supprimer toute la redondance qui est dans certains des styles qui ont été créés avant que je n'ai eu un coup d'oeil au fichier.
3 réponses
D'où viennent ces valeurs? La documentation pour android:fontFamily ne répertorie pas ces informations en tout lieu
ceux-ci ne sont en effet pas énumérés dans la documentation. Mais ils sont mentionnés ici sous la rubrique "Familles De Polices". Le document liste chaque nouvelle API publique pour Android Jelly Bean 4.1.
dans les styles.fichier xml dans l'application je suis travailler sur quelqu'un a indiqué que c'était la famille font, et je suis presque sûr que c'est faux:
Oui, c'est mal. Vous ne faites pas référence au fichier de police, vous devez utiliser le nom de police mentionné dans le document lié ci-dessus. Dans ce cas, il aurait dû être ceci:
<item name="android:fontFamily">sans-serif</item>
comme la réponse liée déjà indiqué, 12 variantes sont possibles:
ajouté dans Android Jelly Bean (4.1) - API 16:
Regular (par défaut):
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
Italique :
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>
Bold :
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
Gras-italique :
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>
Lumière :
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>
Lumière italique :
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>
Mince :
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>
"1519350920 Minces" italique :
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>
régulier condensé :
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>
italique condensé :
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>
Bold condensé :
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>
Bold Condensed-italic :
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>
ajouté dans Android Lollipop (v5.0) - API 21:
Moyen :
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
Moyen italique :
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>
Noir :
<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>
pour consultation rapide, voici à quoi ils ressemblent tous:
polices disponibles (à partir de Oreo)
Le Matériel de Conception de la Typographie la page a démos pour certaines de ces polices et des suggestions sur le choix des polices et des styles.
pour les traîneaux à code: fonts.xml
est la liste définitive et sans cesse croissante des polices Android.
l'Utilisation de ces polices
définit les attributs android:fontFamily
et android:textStyle
, p.ex.
<!-- Roboto Bold -->
<TextView
android:fontFamily="sans-serif"
android:textStyle="bold" />
aux valeurs désirées de ce tableau:
Font | android:fontFamily | android:textStyle
-------------------------|-----------------------------|-------------------
Roboto Thin | sans-serif-thin |
Roboto Light | sans-serif-light |
Roboto Regular | sans-serif |
Roboto Bold | sans-serif | bold
Roboto Medium | sans-serif-medium |
Roboto Black | sans-serif-black |
Roboto Condensed Light | sans-serif-condensed-light |
Roboto Condensed Regular | sans-serif-condensed |
Roboto Condensed Medium | sans-serif-condensed-medium |
Roboto Condensed Bold | sans-serif-condensed | bold
Noto Serif | serif |
Noto Serif Bold | serif | bold
Droid Sans Mono | monospace |
Cutive Mono | serif-monospace |
Coming Soon | casual |
Dancing Script | cursive |
Dancing Script Bold | cursive | bold
Carrois Gothic SC | sans-serif-smallcaps |
(Noto Sans est une police de secours; vous ne pouvez pas la spécifier directement)
Note: ce tableau est dérivé de fonts.xml
. Chacun le nom de famille et le style de la police sont listés dans les polices.xml, p.ex.
<family name="serif-monospace">
<font weight="400" style="normal">CutiveMono.ttf</font>
</family>
serif-monospace
est donc la famille des polices, et normal
est le style.
compatibilité
basé sur le log des polices.xml et l'ancien system_fonts.xml , vous pouvez voir quand chaque police a été ajoutée:
- Crème Glacée Sandwich: Roboto normal, gras, italique et gras italique
- Jelly Bean: Roboto de la lumière, de la lumière, de l'italique, condensé condensé gras, condensed italic, et condensed bold italic
- Jelly Bean MR1: Roboto mince et mince italique
- Lollipop:
- Roboto medium, medium italic, noir, et le noir italique
- Noto Serif normal, gras, italique, gras italique
- Cutive Mono
- À Venir
- Script De Danse
- Carrois Gothic SC
- Noto Sans
- Oreo MR1: Roboto condensed medium
autant que je sache, vous ne pouvez pas déclarer des polices personnalisées en xml ou des thèmes. Je fais habituellement des classes personnalisées étendant textview qui mettent leur propre police sur instanciation et utilisent ceux de mes fichiers xml de layout.
c'est à dire:
public class Museo500TextView extends TextView {
public Museo500TextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));
}
}
et
<my.package.views.Museo900TextView
android:id="@+id/dialog_error_text_header"
android:layout_width="190dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="12sp" />