Wie zentriere ich den Text horizontal und vertikal in a TextView
, sodass er genau in der Mitte des TextView
In angezeigt wird Android
?
Wie zentriere ich den Text horizontal und vertikal in a TextView
, sodass er genau in der Mitte des TextView
In angezeigt wird Android
?
Antworten:
Ich gehe davon aus, dass Sie XML-Layout verwenden.
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/**yourtextstring**"
/>
Sie können auch die Schwerkraft center_vertical
oder center_horizontal
je nach Bedarf verwenden.
und wie @stealthcopter in Java kommentierte: .setGravity(Gravity.CENTER);
android:gravity="center"
). Es wird immer noch ganz links auf dem Bildschirm angezeigt. :(
android:layout_gravity="center"
etwas anderem.
android:gravity="center"
Dies wird den Trick tun
Sie können es auch dynamisch einrichten, indem Sie:
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
Dies funktioniert bei Verwendung mit einem RelativeLayout, bei dem Höhe und Breite des Layouts auf wrap_content festgelegt sind.
TextView
. Der Text ist in voller Breite und mehrzeilig und linksbündig innerhalb der TextView
. Es erscheint linksbündig auf dem Display. Sie sollten "Schwerkraft" verwenden, wie in den anderen Antworten angegeben.
Schwerkraft anwenden:
TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);
Für vertikale:
txtView.setGravity(Gravity.CENTER_VERTICAL);
In XML:
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/Hello_World"
/>
Es gibt zwei Möglichkeiten, dies zu tun.
Der erste im XML-Code. Sie müssen auf das Gravity
Attribut achten . Sie finden dieses Attribut auch im Grafikeditor. Es ist möglicherweise einfacher als der XML-EDITOR.
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:text="Your Text"
/>
Für Ihr spezifisches Szenario sind die Schwerkraftwerte:
center_vertical|center_horizontal
Im grafischen Editor finden Sie alle möglichen Werte, sogar deren Ergebnisse.
Wenn Sie TableLayout verwenden, stellen Sie sicher, dass auch die Schwerkraft der TableRows auf Mitte eingestellt ist. Sonst funktioniert es nicht. Zumindest hat es bei mir nicht funktioniert, bis ich die Schwerkraft der TableRow auf Mitte gestellt habe.
Zum Beispiel so:
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">
<TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>
</TableRow>
Sie müssen die TextView-Schwerkraft (Mitte horizontal und Mitte vertikal) 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);
layout_centerhorizontal
und layout_centervertical
durch layout_centerHorizontal
und layout_centerVertical
("H" und "V" in Großbuchstaben, sonst funktioniert es nicht).
Für lineares Layout: Verwenden Sie in XML so etwas
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:text="Your Text goes here"
/>
Verwenden Sie dazu zur Laufzeit so etwas in Ihrer Aktivität
TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Für das relative Layout: Verwenden Sie in XML Folgendes
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:text="Your Text goes here"
/>
Verwenden Sie dazu zur Laufzeit 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);
Verwendung in der XML-Datei.
Layoutdatei
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/stringtext"/>
oder:
Verwenden Sie dies innerhalb der Java-Klasse
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"
Wenn die TextView's
Höhe und Breite sind, wrap content
wird der Text innerhalb der TextView
immer zentriert. Aber wenn die TextView's
Breite match_parent
und Höhe ist match_parent
oder wrap_content
dann müssen Sie den folgenden Code schreiben:
Für RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World" />
</RelativeLayout>
Für LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World" />
</LinearLayout>
Während die Verwendung der Schwerkraft für TextView funktioniert, ist in API-Ebene 17 eine alternative Methode implementiert:
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
Ich kenne den Unterschied nicht, aber es funktioniert auch. Jedoch nur für API Level 17 oder höher.
In RelativeLayout
wird es schön damit sein.
Und noch eine Button
und alles andere, was Sie hinzufügen können.
Das Folgende funktioniert gut für mich.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff314859"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:id="@+id/txt_logo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="your text here"
android:textSize="30dp"
android:gravity="center"/>
...other button or anything else...
</RelativeLayout>
Sie können einfach die gravity
Ihrer Textansicht in einstellen CENTER
.
Wenn Sie versuchen, Text in einem TableLayout auf einer TableRow zu zentrieren, habe ich Folgendes erreicht:
<TableRow android:id="@+id/rowName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView android:id="@+id/lblSomeLabel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="100"
android:text="Your Text Here" />
</TableRow>
Verwenden android:textAlignment="center"
<TextView
android:text="HOW WAS\nYOUR\nDAY?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/textView5"
/>
Hier ist meine Antwort, die ich in meiner App verwendet hatte. Es zeigt Text in der Mitte des Bildschirms.
<TextView
android:id="@+id/txtSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/subject"
android:layout_margin="10dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
Wenn Sie das relative Layout verwenden:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_centerInParent="true"/>
Wenn Sie LinearLayout verwenden
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_gravity="center"/>
Stellen Sie in Ihrer XML-Datei einfach die Schwerkraft der Textansicht auf Mitte ein:
<TextView
android:gravity="center" />
Sie können dies tun, um den Text zu zentrieren
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
Die Höhe und Breite der Textansicht sind Umbruchinhalte. Der Text in der Textansicht wird immer zentriert. Machen Sie dann die Mitte im übergeordneten Layout, indem Sie Folgendes verwenden:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Hello.."/>
</RelativeLayout>
Für LinearLayout ist auch der Code derselbe:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello.."/>
</LinearLayout>
und pro-grammatisch übergeordnet ist RelativeLayout Java-Code. Verwenden Sie zur Laufzeit 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);
Wir können dies auf verschiedene Arten erreichen:
XML-Methode 01
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@strings/text"
/>
XML-Methode 02
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@strings/text"
/>
XML-Methode 03
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center"
android:text="@strings/text"
/>
XML-Methode 04
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="@strings/text"
/>
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);
Die Schwerkraft von TextView funktioniert gemäß Ihrem übergeordneten Layout.
LinearLayout :
Wenn Sie LinearLayout verwenden, finden Sie zwei Schwerkraftattribute android: Schwerkraft & android: layout_gravity
android: Schwerkraft: stellt den Layouttrank des internen Textes von TextView dar, während android: layout_gravity: die Position von TextView in der übergeordneten Ansicht darstellt.
Wenn Sie Text horizontal und vertikal zentrieren möchten, verwenden Sie diesen Code
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="300dp"
android:background="@android:color/background_light"
android:layout_height="300dp">
<TextView
android:layout_width="match_parent"
android:text="Hello World!"
android:gravity="center_horizontal"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
/>
</LinearLayout>
RelativeLayout :
Mit RelativeLayout können Sie die folgende Eigenschaft in TextView verwenden
Android: Schwerkraft = "Zentrum" für Textzentrum in TextView.
android :vity = "center_horizontal" innerer Text, wenn Sie horizontal zentriert sein möchten.
android :vity = "center_vertical" innerer Text, wenn Sie vertikal zentriert werden möchten.
android: layout_centerInParent = "true", wenn TextView in der Mittelposition der übergeordneten Ansicht angezeigt werden soll. android: layout_centerHorizontal = "true", wenn TextView horizontal in der Mitte der übergeordneten Ansicht angezeigt werden soll. android: layout_centerVertical = "true", wenn TextView vertikal in der Mitte der übergeordneten Ansicht angezeigt werden soll.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="300dp"
android:background="@android:color/background_light"
android:layout_height="300dp">
<TextView
android:layout_width="match_parent"
android:text="Hello World!"
android:gravity="center"
android:layout_centerInParent="true"
android:layout_height="wrap_content"
/>
</RelativeLayout>
Versuchen Sie es auf diese Weise, es wird funktionieren
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
/>
</LinearLayout>