Как центрировать текст по горизонтали и вертикали в TextView?

Как отцентрировать текст по горизонтали и вертикали в TextView, чтобы он появлялся точно в середине TextView в Android?

1876
задан Alexander Abakumov 6 April 2018 в 14:40
поделиться

53 ответа

Я предполагаю, что вы используете макет XML.

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="@string/**yourtextstring**"
/>

Вы также можете использовать гравитацию center_vertical или center_horizontal в соответствии с вашими потребностями.

и как @stealthcopter прокомментировал в Java: .setGravity(Gravity.CENTER);

2890
ответ дан Khemraj 6 April 2018 в 14:40
поделиться

Используйте 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"
         />
2
ответ дан Chathura Wijesinghe 6 April 2018 в 14:40
поделиться

Установите атрибут гравитации в файле макета как android:gravity="center"

1
ответ дан Piyush 6 April 2018 в 14:40
поделиться

Используйте android:gravity="center" для решения вашей проблемы.

1
ответ дан Satan Pandeya 6 April 2018 в 14:40
поделиться

попробуйте это:

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
/>
1
ответ дан Bapusaheb Shinde 6 April 2018 в 14:40
поделиться

С помощью. xml гравитация файла может быть установлена ​​в центр следующим образом

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
    android:text="In the center"
/>

С помощью Java, как вы можете решить вашу конкретную проблему

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
1
ответ дан sg7 6 April 2018 в 14:40
поделиться

Вы должны установить гравитацию следующим образом:

(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
1
ответ дан mohamad sheikhi 6 April 2018 в 14:40
поделиться

Если вы делаете ширину и высоту вашего текстового представления для переноса содержимого, вам необходимо управлять его положением с помощью гравитации макета в соответствии с поддерживаемыми родителями атрибутами. Еще вы можете сделать.

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"/> 
1
ответ дан Rishabh Saxena 6 April 2018 в 14:40
поделиться
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Tours"
        android:id="@+id/textView" />
0
ответ дан A.G.THAMAYS 6 April 2018 в 14:40
поделиться
There are 2 ways to do this :

1. From Xml
     use :  
        <TextView
         .........
        android:gravity="center"/>

2. From Java class
    use : 

     [textview].setGravity(Gravity.CENTER);
0
ответ дан Heena Arora 6 April 2018 в 14:40
поделиться

Вы можете центрировать текстовое представление, используя android: gravity = "center"

Код выглядит следующим образом

    <TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center" />
0
ответ дан Sarvesh Thiruppathi 6 April 2018 в 14:40
поделиться

Если в этом TextView атрибуты высоты / ширины не установлены на wrap_content, просто используйте android:gravity="center". Но некоторые люди жалуются, что использование этого не работает. Это потому, что их расположение не имеет такой же силы тяжести. Вы можете установить

android:layout_gravity="center" В ТЕКСТ.] (это будет применяться только к TextView)

или

android:gravity="center" IN РАСПИСАНИЕ РОДИТЕЛЕЙ (это будет применяться ко всем представлениям внутри него)

0
ответ дан Alejandro Bertinelli 6 April 2018 в 14:40
поделиться

В ConstraintLayout для любого представления:

(Когда вы используете макет ограничения, установите высоту и ширину равными 0 и разрешите ограничению управлять границами вида.)

<View
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
0
ответ дан Peter Mortensen 6 April 2018 в 14:40
поделиться

Как центрировать вид или его содержимое, например, TextView или кнопка по горизонтали и вертикали? layout_gravity может использоваться для позиционирования представления в центре его родителя. В то время как атрибут гравитации используется для позиционирования содержимого вида, например «Текст» в центре зрения.

(1) Центр TextView по горизонтали

enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</LinearLayout>

(2 ) Центр TextView по вертикали

android: layout_gravity = ”center_vertical” доза не работает !!

Чтобы центрировать TextView по вертикали, вам нужно сделать трюк. Поместите TextView в RelativeLayout, затем установите атрибут TextView android: layout_centerInParent = ”true” enter image description here

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
       android:orientation="vertical"
       android:layout_margin="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:layout_centerInParent="true"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:background="#333"
        android:textColor="#fff"
        />

</RelativeLayout>

(3) Центрировать текст по горизонтали

android: гравитация = «центр_горизонт»

enter image description here

(4) центр Текст по горизонтали и по вертикали

android: gravity = ”center”. Это позволит центрировать текст по горизонтали и вертикали

enter image description here

<TextView
    android:layout_width="fill_parent"
    android:layout_height="100dp"
    android:text="Hello World!"
    android:gravity="center"
    android:background="#333"
    android:textColor="#fff"
    />
0
ответ дан Fenil Patel 6 April 2018 в 14:40
поделиться

Используйте свойство гравитации в TextView для центрирования текста по вертикали и горизонтали.

android:gravity="center"
0
ответ дан Aravinth 6 April 2018 в 14:40
поделиться

Вот решение.

<TextView  
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center"
       android:text="**Your String Value**" />
0
ответ дан Jatin Mandanka 6 April 2018 в 14:40
поделиться

Вы можете изменить android:gravity для этого.

android:gravity="center" или

, если вы хотите центрировать по горизонтали или вертикали

android:gravity="center_horizontal"

android:gravity="center_vertical"

0
ответ дан hash 6 April 2018 в 14:40
поделиться

Вы можете программно сделать это в Java с: textview.setGravity (Gravity.CENTER);

0
ответ дан Joshua Best 6 April 2018 в 14:40
поделиться

Попробуйте это:

Использование LinearLayout, если вы используете высота и ширина textview match_parent Вы можете установить гравитацию текста по центру и выравнивание текста по центру текста по горизонтали Если вы используете высоту и ширину textview wrap_content, добавьте атрибут центра тяжести в свой LinearLayout.

XML-код

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:textAlignment="center"
    android:gravity="center"
    android:textColor="#000"
    android:textSize="30sp"
    android:text="Welcome to Android" />
    </LinearLayout>

Java-код

Вы можете программно сделать так: -

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

Спасибо

0
ответ дан Android Geek 6 April 2018 в 14:40
поделиться

Ширина и высота TextView должны соответствовать match_parent и добавить android: gravity = "center" в ваши атрибуты textview.

0
ответ дан Jocelin 6 April 2018 в 14:40
поделиться

Если у вас есть только один TextView в вашем XML-файле, вы можете сделать так, чтобы родительское представление отображало гравитацию как центр. Это сделает ваш дочерний элемент в центре экрана, а затем вы сможете сделать так, чтобы ваш дочерний элемент отображался как по высоте, так и по ширине.

0
ответ дан Rohit Patil 6 April 2018 в 14:40
поделиться

center text

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_height="wrap_content">
    <TextView
            android:id="@+id/failresults"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dp"
            android:gravity="center_vertical|center_horizontal"
            android:text=""
            android:textSize="12sp" />
</LinearLayout>

, если у вас есть видение текста внутри линейного разметки, вам нужно установить их гравитацию в центр

2
ответ дан Muklas 6 April 2018 в 14:40
поделиться
<TextView  
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center"
android:text="In the center"/>

Выше, чтобы установить его с помощью XML-файла.

но я предпочитаю java версию, потому что вы также можете отключить ее в коде, когда в рабочем состоянии, если это необходимо. Ниже приведен код Java.

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
2
ответ дан 6 April 2018 в 14:40
поделиться

Вы пробовали таким образом?

<TextView
android:id="+@id/txtVw"
android:gravity="center"
/>
2
ответ дан Aditya Vyas-Lakhan 6 April 2018 в 14:40
поделиться
android:gravity="center" 

Это сделает свое дело

424
ответ дан darryn.ten 6 April 2018 в 14:40
поделиться

Вы также можете настроить его динамически, используя:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
287
ответ дан zeevb 6 April 2018 в 14:40
поделиться
android:layout_centerInParent="true"

Это работает при использовании с RelativeLayout, где высота макета и; ширина установлена ​​в wrap_content.

109
ответ дан sth 6 April 2018 в 14:40
поделиться

Если вы используете TableLayout, убедитесь, что гравитация TableRows также установлена ​​в центр. В противном случае это не будет работать. По крайней мере, это не работало со мной, пока я не установил гравитацию TableRow в центр.

Например, вот так:

<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>
38
ответ дан Peter Mortensen 6 April 2018 в 14:40
поделиться

Применить силу тяжести:

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

Для вертикали:

txtView.setGravity(Gravity.CENTER_VERTICAL);

В XML:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>
52
ответ дан ayz4sci 6 April 2018 в 14:40
поделиться

Есть два способа сделать это.

Первый в XML-коде. Вам нужно обратить внимание на Gravity Атрибут. Вы также можете найти этот атрибут в графическом редакторе; это может быть проще, чем редактор XML.

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="Your Text"
/>

Для вашего конкретного сценария значения гравитации будут:

center_vertical|center_horizontal

В графическом редакторе вы найдете все возможные значения, даже увидите их результаты.

38
ответ дан Piyush 6 April 2018 в 14:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: