818 votes

Comment changer fontFamily de TextView Android

Donc, je voudrais changer l' android:fontFamily dans Android, mais je ne vois pas de pré-définies polices dans Android. Comment sélectionner l'un des pré-définis? Je n'ai pas vraiment besoin de définir ma propre Police de caractères, mais tout ce que je besoin est quelque chose de différent de ce qu'il montre actuellement.

<TextView
    android:id="@+id/HeaderText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="52dp"
    android:gravity="center"
    android:text="CallerBlocker"
    android:textSize="40dp"
    android:fontFamily="Arial"
 />

Il semble que ce que j'ai fait jusqu'à il n'y aura pas vraiment de travail! BTW android:fontFamily="Arial" a été stupide de tenter!

1735voto

user956415 Points 3301

À partir d'android 4.1 / 4.2, la suite de Roboto familles de polices de caractères sont disponibles:

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

android:textStyle="normal|bold|italic"

ce 12 variantes sont possibles:

  • Régulier
  • Italique
  • Gras
  • Gras-italique
  • La lumière
  • La lumière italique
  • Mince
  • Mince italique
  • Condensé régulier
  • Condensed italic
  • Condensed bold
  • Condensed bold-italic

241voto

Stefan Beike Points 4207

c'est le moyen de définir la police par programmation:

TextView tv = (TextView) findViewById(R.id.appname);
Typeface face = Typeface.createFromAsset(getAssets(),
            "fonts/epimodem.ttf");
tv.setTypeface(face);

mettre le fichier de police dans votre dossier des actifs. Dans mon cas, j'ai créé un sous-répertoire appelé polices.

52voto

Raghav Sood Points 43264

Android ne permet pas de définir des polices personnalisées à partir de la mise en page XML. Au lieu de cela, vous devez regrouper les polices de caractères particulières de fichier dans votre application dossier des actifs, et de le définir par programmation. Quelque chose comme:

TextView textView = (TextView) findViewById(<your TextView ID>);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "<file name>");
textView.setTypeface(typeFace);

Notez que vous ne pouvez exécuter ce code après setContentView() a été appelé. Aussi, seules certaines polices de caractères sont pris en charge par Android, et devrait être en .ttf (TrueType) ou .otf (OpenType) format. Même alors, certaines polices peuvent ne pas fonctionner.

C' est une police qui fonctionne bien sur Android, et vous pouvez l'utiliser pour confirmer que votre code fonctionne dans le cas où votre fichier de police n'est pas pris en charge par Android.

25voto

biegleux Points 6422

C'est le même que android:typeface.

les polices intégrées sont les suivantes:

  • normal
  • sans
  • serif
  • monospace

Voir android:police de caractères.

15voto

gauravdott Points 105

Je suis à l'aide de l'excellente bibliothèque de la Calligraphie par Chris Jenx conçu pour vous permettre d'utiliser des polices personnalisées dans votre application android. Essayez-le!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X