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!

11voto

Siva Punkte 166

Wenn Sie Android Studio 3.5+ verwenden, ist das Ändern der Schriftart sehr einfach. Wählen Sie das Textwidget in der Entwurfsansicht aus und überprüfen Sie die Schriftfamilie im Attributfenster. Das Werte-Dropdown enthält alle verfügbaren Schriftarten, aus denen Sie eine auswählen können. Wenn Sie nach Google Fonts suchen, klicken Sie auf die Option More Fonts.

Attribut-Fenster Attribute Window

Google-Schriftarten Google Fonts

9voto

anand krish Punkte 3595

Dynamisch können Sie die Schriftart (fontfamily) ähnlich wie Android:fontFamily in xml einstellen, indem Sie dies verwenden,

For Custom font:

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

For Default font:

 tv.setTypeface(Typeface.create("sans-serif-medium",Typeface.NORMAL));

Dies ist die Liste der Standardschriftart Familie verwendet wird, verwenden Sie eine beliebige davon, indem Sie die doppelte Anführungszeichenfolge ersetzen "sans-serif-medium"

FONT FAMILY                    TTF FILE                    

1  casual                      ComingSoon.ttf              
2  cursive                     DancingScript-Regular.ttf   
3  monospace                   DroidSansMono.ttf           
4  sans-serif                  Roboto-Regular.ttf          
5  sans-serif-black            Roboto-Black.ttf            
6  sans-serif-condensed        RobotoCondensed-Regular.ttf 
7  sans-serif-condensed-light  RobotoCondensed-Light.ttf   
8  sans-serif-light            Roboto-Light.ttf            
9  sans-serif-medium           Roboto-Medium.ttf           
10  sans-serif-smallcaps       CarroisGothicSC-Regular.ttf 
11  sans-serif-thin            Roboto-Thin.ttf             
12  serif                      NotoSerif-Regular.ttf       
13  serif-monospace            CutiveMono.ttf              

"mycustomfont.ttf" ist die ttf-Datei. Pfad wird in src/assets/fonts/mycustomfont.ttf können Sie mehr über die Standardschriftart in diesem Standard-Schriftfamilie

8voto

Wolfiebae Punkte 395

Sie können dies auch tun, indem Sie einen Schriftarten-Ordner unter dem res-Verzeichnis hinzufügen (siehe unten).

enter image description here

Wählen Sie dann Schrift als Ressourcentyp aus. enter image description here

Verfügbare Schriftarten finden Sie unter https://www.1001fonts.com/ und dann die TTF-Dateien in dieses Verzeichnis extrahieren.

enter image description here

Schließlich ändern Sie einfach die XML-Datei, die Ihre Textansicht enthält, indem Sie Android:fontFamily:"@font/urfontfilename" hinzufügen.

enter image description here

6voto

Nach einigen Versuchen habe ich Folgendes gelernt.

Innerhalb der *.xml können Sie die Stock Fonts mit den folgenden Funktionen kombinieren, nicht nur mit Typeface:

 android:fontFamily="serif" 
 android:textStyle="italic"

Mit diesen beiden Stilen war es nicht nötig, in jedem anderen Fall eine Schrift zu verwenden. Mit fontfamily&textStyle ist die Auswahl an Kombinationen viel größer.

6voto

mohamad sheikhi Punkte 342

Versuchen Sie dies:

TextView textview = (TextView) findViewById(R.id.textview);
Typeface tf= Typeface.createFromAsset(getAssets(),"fonts/Tahoma.ttf");
textview .setTypeface(tf);

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