Wie zentriere ich Text in einem TextView horizontal und vertikal?

Wie TextView ich den Text horizontal und vertikal in einer TextView , sodass er genau in der Mitte der TextView in Android ?

Solutions Collecting From Web of "Wie zentriere ich Text in einem TextView horizontal und vertikal?"

Ich gehe davon aus, dass Sie das XML-Layout verwenden.

  

Sie können auch die Schwerkraft center_vertical oder center_horizontal entsprechend Ihren Anforderungen verwenden.

und als @stealthcopter kommentiert in Java: .setGravity(Gravity.CENTER);

 android:gravity="center" 

Dies wird den Trick machen

Sie können es auch dynamisch einrichten mit:

 textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
 android:layout_centerInParent="true" 

Dies funktioniert, wenn Sie RelativeLayout verwenden, wobei die Höhe und Breite des Layouts auf wrap_content gesetzt sind.

Sie können auch die Kombination verwenden:

 android:gravity="left|center" 

Wenn die Breite der Textansicht größer als “fill_parent” ist, wird der Text immer noch nach links ausgerichtet (nicht zentriert, da die Schwerkraft nur auf “center” eingestellt ist).

Wende die Schwerkraft an:

 TextView txtView = (TextView) findViewById(R.id.txtView); txtView.setGravity(Gravity.CENTER_HORIZONTAL); 

Für vertikal:

 txtView.setGravity(Gravity.CENTER_VERTICAL); 

In XML:

  

Wenn Sie TableLayout verwenden, stellen Sie sicher, dass auch die Schwerkraft von TableRows in der Mitte liegt. Sonst wird es nicht funktionieren. Zumindest funktionierte es nicht mit mir, bis ich die Schwerkraft des TableRow zentriert habe.

Zum Beispiel so:

    

Sie müssen TextView Gravity (Center Horizontal & Center Vertical) wie folgt einstellen:

 android:layout_centerHorizontal="true" 

und

 android:layout_centerVertical="true" 

Und dynamisch mit:

 textview.setGravity(Gravity.CENTER); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Es gibt zwei Möglichkeiten, dies zu tun.

Der erste im XML-Code. Sie müssen beim Gravity aufpassen. Sie finden dieses Attribut auch im Grafikeditor. Es könnte einfacher sein als der XML EDITOR.

  

Für Ihr spezifisches Szenario werden die Werte der Schwerkraft sein:

 center_vertical|center_horizontal 

Im grafischen Editor finden Sie alle möglichen Werte, sogar ihre Ergebnisse.

Meiner Meinung nach,

 android:gravity="center" 

ist besser als,

 android:layout_centerInParent="true" 

was ist besser als

 android:layout_centerHorizontal="true" android:layout_centerVertical="true" 

zumindest zum Formatieren von Text.

Für lineares Layout: Verwenden Sie in XML so etwas

  

Verwenden Sie zu Ausführungszeitpunkt so etwas in Ihrer Aktivität

 TextView textView1 =(TextView)findViewById(R.id.texView1); textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Für Relatives Layout: In XML verwenden Sie etwas wie dieses

  

Verwenden Sie zu Ausführungszeitpunkt so etwas in Ihrer Aktivität

 TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

Verwenden Sie in der XML-Datei.

Layoutdatei

  

oder:

Verwenden Sie dies innerhalb der Java-class

 TextView textView =(TextView)findViewById(R.id.texviewid); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Verwenden Sie dies für das relative Layout

 android:layout_centerInParent="true" 

und für anderes Layout

 android:gravity="center" 

Während Gravitation für TextView verwendet wird, gibt es eine alternative Methode, die in API-Ebene 17 implementiert ist –

 textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

Ich kenne den Unterschied nicht, aber es funktioniert auch. Jedoch nur für API Stufe 17 oder höher.

In RelativeLayout wird es nett damit sein.

Und noch ein Button und alles, was du hinzufügen kannst.

Das folgende funktioniert gut für mich.

   ...other button or anything else...  

Wenn die Höhe und Breite des TextView's wrap content ist, wird der Text innerhalb des TextView immer zentriert. Aber wenn die TextView's Breite match_parent und die Höhe match_parent oder wrap_content ist, müssen Sie den folgenden Code schreiben:

Für RelativeLayout:

    

Für LinearLayout:

    

Der einfachste Weg (der überraschenderweise nur in Kommentaren erwähnt wird, also warum ich als Antwort posten) ist:

 textview.setGravity(Gravity.CENTER) 

Sie können einfach die gravity Ihres Textview in CENTER .

Wenn Sie versuchen, Text auf einem TableRow in einem TableLayout zu zentrieren, habe ich folgendes erreicht:

    

Hier ist meine Antwort, die ich in meiner App verwendet hatte. Es zeigt Text in der Mitte des Bildschirms.

  

Wenn Sie Relatives Layout verwenden:

   

Wenn Sie LinearLayout verwenden

  

Wie viele Antworten oben empfehlen funktioniert gut.

 android:gravity="center" 

Wenn Sie es nur vertikal zentrieren möchten:

 android:gravity="center_vertical" 

oder nur horizontal:

 android:gravity="center_horizontal" 

Stellen Sie einfach in Ihrer XML-Datei die Schwerkraft der Textansicht auf Mitte:

  

Die Höhe und Breite des TextViews ist ein Wrap-Inhalt, dann wird der Text in der Textansicht immer zentriert, dann zentrieren Sie ihn im übergeordneten Layout mit:

    

Für LinearLayout ist auch der Code gleich:

    

und pro-grammatisch Eltern ist RelativeLayout Java-Code dies zur Laufzeit verwenden Sie so etwas in Ihrer Aktivität

 TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

Sie können dies tun, um Text zentriert zu bekommen

  

Das können wir mit diesen verschiedenen Wegen erreichen:

XML-Methode 01

  

XML-Methode 02

  

XML-Methode 03

  

XML-Methode 04

  

Java-Methode 01

 textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

Java-Methode 02

 textview.setGravity(Gravity.CENTER); 

Java-Methode 03

 textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

android:gravity="center_horizontal" für Ausrichtung Text Center horizontal. android:gravity="center_vertical" für android:gravity="center_vertical" Center vertikal. android:gravity="center" für Ausrichtungstext Zentriert sowohl vertikal als auch horizontal.

  

Versuchen Sie es so, es wird funktionieren

    

benutze den untenstehenden Code in xml für mich. Du kannst die Ausrichtung in der Mitte ändern

    

TextView Gravity funktioniert gemäß Ihrem übergeordneten Layout.

LinearLayout :

Wenn Sie LinearLayout verwenden, finden Sie zwei Gravitationsattribute: android: gravity & android: layout_gravity

android: gravity: repräsentiert den Layouttrank des internen Textes von TextView während android: layout_gravity: repräsentiert die TextView-Position in der Elternansicht.

Bildbeschreibung hier eingeben

Wenn Sie Text horizontal und vertikal zentrieren möchten, verwenden Sie den folgenden Code

    

RelativeLayout :

Mit RelativeLayout können Sie die Eigenschaft unten in TextView verwenden

android: gravity = “center” für Textcenter in TextView.

android: gravity = “center_horizontal” innerer Text, wenn Sie horizontal zentriert sein möchten.

android: gravity = “center_vertical” innerer Text, wenn Sie vertikal zentriert sein möchten.

android: layout_centerInParent = “true”, wenn TextView in der Mitte der Elternansicht angezeigt werden soll. android: layout_centerHorizontal = “true”, wenn TextView horizontal in der Mitte der Elternansicht angezeigt werden soll. android: layout_centerVertical = “true”, wenn TextView in der vertikalen Mitte der Elternansicht angezeigt werden soll.