it-swarm.com.de

schriftart zur Laufzeit setzen, Textview

Wie kann man die Schriftart auf textview setzen, die zur Laufzeit erstellt wird?

ich habe Textview erstellt

Textview tv = new TextView(this);      
tv.setTextSize(20);

wie ich die Größe ändern kann
Ich möchte den Schriftstil auf "Verdana" setzen.

Wie mache ich das? Grüße Shishir

35
iscavengers

So stellen Sie die integrierte Schrift zur Laufzeit ein:

  • Zunächst wird zum Ändern der Schriftart die Klasse Typeface verwendet.

  • Nun, at Run-Time, um die Schriftartoberfläche festzulegen, verwenden Sie setTypeface(Typeface) aus dem Java-Code

  • at Design-Time, um das Schriftbild festzulegen, verwenden Sie Android:typeface="serif"

Zum Beispiel:

<TextView Android:text="@+id/TextView01"
 Android:id="@+id/TextView01"
 Android:layout_width="wrap_content"
 Android:layout_height="wrap_content"
 Android:textSize="30px"
 Android:textStyle="italic"
 Android:typeface="serif" />

Festlegen von benutzerdefinierten Schriftarten in Ihrer Android-Anwendung

Erstellen Sie dazu einfach einen Assets/Ordner im Projektstamm und fügen Sie Ihre Schriftarten (in TrueType- oder TTF-Form) in die Assets ein. Sie können beispielsweise assets/fonts/ erstellen und Ihre TTF-Dateien dort einfügen:

  TextView tv=(TextView)findViewById(R.id.custom); 
  Typeface face=Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf"); 
  tv.setTypeface(face); 
63
Paresh Mayani

Sie können in Ihrem Asset-Ordner eine .ttf-Schriftart haben. Angenommen, der Name der Schriftart lautet "default.ttf", und Sie müssen jetzt nur noch zwei Zeilen Code schreiben

TextView text = new TextView(this);
text.setTypeface(Typeface.createFromAsset(getAssets(), "default.ttf"));

Sie müssen auch vorsichtig sein, da verschiedene Schriftarten unterschiedliche Größen haben. Sie müssen möglicherweise die Größe einstellen als:

text.setTextSize(20);
3
Dilroop Singh

Mit der Einführung von Fonts in XML in Android 8.0 (abwärtskompatibel ab API-Version 14) ist es sehr einfach, die Schriftart aus XML selbst festzulegen.

Aus der Android-Dokumentation:

Android 8.0 (API-Ebene 26) führt eine neue Funktion ein, Schriftarten in XML, So können Sie Schriftarten als Ressourcen verwenden. Sie können die Schriftartdatei in .__ hinzufügen. den Ordner res/font /, um Zeichensätze als Ressourcen zu bündeln. Diese Schriftarten sind in Ihrer R-Datei kompiliert und sind automatisch in Android verfügbar Studio. Sie können auf die Fontressourcen mit Hilfe eines neuen .__ zugreifen. Ressourcentyp, Schriftart. Um beispielsweise auf eine Schriftartressource zuzugreifen, verwenden Sie @ font/myfont oder R.font.myfont.

Erstellen Sie zunächst ein Android-Ressourcenverzeichnis im res-Ordner mit dem Namen font.
Fügen Sie dem Verzeichnis Ihre .ttf-Schriftdatei hinzu und erstellen Sie dann die Schriftfamilie

Erstellen Sie eine Schriftfamilie

Eine Schriftfamilie besteht aus einer Reihe von Schriftdateien sowie deren Stil- und Gewichtsangaben. In Android können Sie eine neue Schriftfamilie als XML-Ressource erstellen und als einzelne Einheit darauf zugreifen, anstatt jeden Stil und jede Gewichtung als separate Ressourcen zu referenzieren. Auf diese Weise kann das System die richtige Schriftart basierend auf dem Textstil auswählen, den Sie verwenden möchten.

Um eine Schriftfamilie zu erstellen, führen Sie die folgenden Schritte in Android Studio aus:

  1. Klicken Sie mit der rechten Maustaste auf den Schriftartenordner und gehen Sie zu Neu> Ressourcendatei für Schriftarten. Das Fenster Neue Ressourcendatei wird angezeigt.
  2. Geben Sie den Dateinamen ein und klicken Sie auf OK. Die neue Schriftartressource XML Wird im Editor geöffnet.
  3. Schließen Sie jede Zeichensatzdatei, den Stil und das Gewichtsattribut in das <font> -Element ein. Die folgende XML veranschaulicht das Hinzufügen von -Attributen in der Schriftartressource XML:

    <?xml version="1.0" encoding="utf-8"?> <font-family xmlns:Android="http://schemas.Android.com/apk/res/Android"> <font Android:fontStyle="normal" Android:fontWeight="400" Android:font="@font/lobster_regular" /> <font Android:fontStyle="italic" Android:fontWeight="400" Android:font="@font/lobster_italic" /> </font-family>

Verwenden Sie dann den folgenden Code, um die Schriftart in Ihrer textView-Art festzulegen

<TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:fontFamily="@font/lobster"/>
2
Rahul Sharma

Hier ist eine kleine Gebrauchsklasse

public class TypefaceHelper {

    public static void setViewGroupTypeface(ViewGroup container, Typeface typeface) {
        final int children = container.getChildCount();

        for (int i = 0; i < children; i++) 
            View child = container.getChildAt(i);

            if (child instanceof TextView) {
                setTextViewTypeface((TextView) child, typeface);
            } else if (child instanceof ViewGroup) {
                setViewGroupTypeface((ViewGroup) child, typeface);
            }
        }
    }

    public static void setTextViewTypeface(TextView textView, Typeface typeface) {
        textView.setTypeface(typeface);
    }

}

Für Dinge wie Spinners oder ListViews (d. H. Jede Art von AdapterView), die ihre Kinder von einem Adapter generieren, müssen Sie die Schriftart jedes Elements View in der getView (oder einer ähnlichen Methode) des Adapters festlegen. Dies liegt daran, dass Ansichten nach Bedarf erstellt werden können und die Einstellung von Typeface in onCreate nicht ordnungsgemäß funktioniert.

2
Joseph Earl

Sie müssen Schrift verwenden:

  1. fügen Sie Ihrem Projekt die Schriftart hinzu, die Sie als Asset verwenden möchten.
  2. erstellen Sie ein Schriftobjekt mit dieser Schriftart:

    Typeface myFont = Typeface.createFromAsset(getAssets(), "fonts/MyFont.ttf");

  3. legen Sie die Schriftart für das Objekt fest, das Sie anpassen möchten:

    TextView myTextView = (TextView)findViewById(R.id.my_text_view); myTextView.setTypeface(myFont);

1
Asahi

Dynamisch können Sie die Schriftfamilie ähnlich wie Android einstellen: fontFamily in xml, 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 verwendeten default font-Familie. Verwenden Sie eine beliebige davon, indem Sie die doppelte Anführungszeichenfolge "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. Path wird in src/assets/fonts/mycustomfont.ttf sein

0
anand krish