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.

230
demandé sur Community 2013-10-30 22:57:51

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:

318
répondu Ahmad 2017-02-09 11:12:30

polices disponibles (à partir de Oreo)

Preview of all fonts

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
86
répondu Newtonx 2017-12-21 20:55:36

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" />
9
répondu trippedout 2013-10-31 00:01:30