836 Stimmen

Wie ändert man die fontFamily von TextView in Android

Ich möchte also die android:fontFamily in Android, aber ich sehe keine vordefinierten Schriftarten in Android. Wie kann ich eine der vordefinierten Schriftarten auswählen? Ich brauche nicht wirklich meine eigene TypeFace zu definieren, aber alles, was ich brauche, ist etwas anderes als das, was es jetzt zeigt.

<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"
 />

Es scheint, dass das, was ich da oben gemacht habe, nicht wirklich funktioniert! ÜBRIGENS: android:fontFamily="Arial" war ein dummer Versuch!

23voto

Akanshi Srivastava Punkte 1060

Eine einfache Möglichkeit ist das Hinzufügen der gewünschten Schriftart in das Projekt.

Gehe zu Datei->Neu->Neues Ressourcenverzeichnis Wählen Sie Schriftart

Dadurch wird ein neues Verzeichnis erstellt, Schriftart in Ihren Ressourcen.

Laden Sie Ihr Schriftart (.ttf) . Ich verwende https://fonts.google.com für dasselbe

Fügen Sie das zu Ihrem Schriftarten und verwenden Sie sie dann in der XML-Datei oder programmatisch.

XML.

<TextView 
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/your_font"/>

Programmatisch -

 Typeface typeface = ResourcesCompat.getFont(this, R.font.your_font);
 textView.setTypeface(typeface);

21voto

Rehan Sarwar Punkte 944

Ich glaube, ich bin zu spät, aber vielleicht ist diese Lösung für andere hilfreich. Um eine benutzerdefinierte Schriftart zu verwenden, legen Sie Ihre Schriftartdatei in Ihr Schriftartenverzeichnis.

textView.setTypeface(ResourcesCompat.getFont(this, R.font.lato));

15voto

gauravdott Punkte 420

Ich verwende die ausgezeichnete Bibliothek Kalligraphie von Chris Jenx, mit dem Sie eigene Schriftarten in Ihrer Android-Anwendung verwenden können. Probieren Sie es aus!

12voto

android developer Punkte 111449

Eine einfache Möglichkeit, die Schriftarten zu verwalten, wäre, sie über Ressourcen zu deklarieren:

<!--++++++++++++++++++++++++++-->
<!--added on API 16 (JB - 4.1)-->
<!--++++++++++++++++++++++++++-->
<!--the default font-->
<string name="fontFamily__roboto_regular">sans-serif</string>
<string name="fontFamily__roboto_light">sans-serif-light</string>
<string name="fontFamily__roboto_condensed">sans-serif-condensed</string>

<!--+++++++++++++++++++++++++++++-->
<!--added on API 17 (JBMR1 - 4.2)-->
<!--+++++++++++++++++++++++++++++-->
<string name="fontFamily__roboto_thin">sans-serif-thin</string>

<!--+++++++++++++++++++++++++++-->
<!--added on Lollipop (LL- 5.0)-->
<!--+++++++++++++++++++++++++++-->
<string name="fontFamily__roboto_medium">sans-serif-medium</string>
<string name="fontFamily__roboto_black">sans-serif-black</string>
<string name="fontFamily__roboto_condensed_light">sans-serif-condensed-light</string>

Dies basiert auf dem Quellcode aquí y aquí

12voto

Mohsin Naeem Punkte 12432

Was Sie wollen, ist nicht möglich. Sie müssen einstellen TypeFace in Ihrem Code.

En XML Was Sie tun können, ist

android:typeface="sans" | "serif" | "monospace"

Ansonsten kann man mit den Schriftarten in XML nicht viel anfangen :)

Für Arial müssen Sie den Typ face in Ihrem Code festlegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X