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

Он называется источником.


В общем случае здесь представлены разные части URL-адреса в соответствии с window.location . (Так, по крайней мере, в соответствии с тем, как Javascript называет это)

protocol://username:password@hostname:port/pathname?search#hash
-----------------------------href------------------------------
                             -----host----
-----------      origin      -------------
  • protocol - схема протокола URL, включая финальную ':'
  • hostname - доменное имя
  • port - номер порта
  • pathname - /pathname
  • search - ?parameters
  • hash - #fragment_identifier
  • username - имя пользователя, указанное перед доменным именем
  • password - пароль, указанный перед доменным именем
  • href - весь URL
  • origin - protocol://hostname:port
  • host - hostname:port

Формальное определение находится в секции RFC 6454.

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

53 ответа

Вам необходимо установить TextView Gravity (по центру по горизонтали и по центру по вертикали) следующим образом:

android:layout_centerHorizontal="true"   

и

android:layout_centerVertical="true"

И динамически, используя:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
35
ответ дан Peter Mortensen 6 April 2018 в 14:40
поделиться

По моему мнению,

android:gravity="center"

лучше, чем

android:layout_centerInParent="true"

, что лучше, чем

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

, по крайней мере, для форматирования текста.

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

Использовать в файле XML.

Файл макета

<TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:text="@string/stringtext"/>

или:

Используйте это внутри класса Java

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
22
ответ дан Peter Mortensen 6 April 2018 в 14:40
поделиться

Используйте это для относительного расположения

android:layout_centerInParent="true"

и для другого расположения

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

Хотя использование гравитации работает для TextView, есть альтернативный метод, реализованный на уровне API 17 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

Не знаю разницы, но он тоже работает. Однако только для уровня API 17 или выше.

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

Если высота и ширина TextView's равны wrap content, то текст в TextView всегда будет центрирован. Но если ширина TextView's равна match_parent, а высота - match_parent или wrap_content, то вы должны написать следующий код:

Для 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>

Для 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>
14
ответ дан Naveen Kumar Sangwan 6 April 2018 в 14:40
поделиться

Мы можем достичь этого несколькими способами: -

Метод XML 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 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 03

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center"
    android:text="@strings/text"
/>

Метод XML 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 01

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

Java-метод 02

textview.setGravity(Gravity.CENTER);

Java-метод 03

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
6
ответ дан Thunder 6 April 2018 в 14:40
поделиться

В RelativeLayout, это будет хорошо с ним.

И еще Button и все, что вы можете добавить.

Следующее работает хорошо для меня.

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

Вы можете просто установить gravity вашего текстового обзора в CENTER.

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

Если вы пытаетесь центрировать текст на TableRow в TableLayout, вот как я этого добился:

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

Вот мой ответ, который я использовал в своем приложении. Он показывает текст в центре экрана.

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

Если вы используете относительную компоновку:

  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_centerInParent="true"/>

Если вы используете LinearLayout

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>
9
ответ дан Niranjan 6 April 2018 в 14:40
поделиться

Как показывают многие ответы выше, это прекрасно работает.

android:gravity="center"

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

android:gravity="center_vertical"

или по горизонтали:

android:gravity="center_horizontal"
7
ответ дан rgamber 6 April 2018 в 14:40
поделиться

Просто в своем XML-файле установите гравитацию textview в центр:

<TextView
    android:gravity="center" />
6
ответ дан Peter Mortensen 6 April 2018 в 14:40
поделиться

Вы можете сделать это, чтобы центрировать текст

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

Самый простой способ (который удивительно упоминается только в комментариях, поэтому я и публикую в качестве ответа) это:

textview.setGravity(Gravity.CENTER)
11
ответ дан user1 6 April 2018 в 14:40
поделиться

Высота и ширина TextView являются содержимым переноса, затем текст в пределах textview всегда центрируется, затем делается центр в его родительском макете с помощью:

<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>

Для LinearLayout также код такой же:

<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>

и программным родителем является Java-код RelativeLayout, который во время выполнения использует что-то подобное в вашей деятельности

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

Гравитация TextView работает в соответствии с макетом вашего родителя.

LinearLayout :

Если вы используете LinearLayout, вы найдете два атрибута гравитации android: gravity & amp; android: layout_gravity

android: gravity: представляет зелье макета внутреннего текста TextView, тогда как android: layout_gravity: представляет позицию TextView в родительском представлении.

enter image description here

Если вы хотите установить текст по горизонтали & amp; вертикально по центру, затем используйте код ниже

<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 :

Используя RelativeLayout, вы можете использовать свойство ниже в TextView

android: gravity = " центр "для текстового центра в TextView.

android: gravity = "center_horizontal" внутренний текст, если вы хотите горизонтально центрировать.

android: gravity = "center_vertical" внутренний текст, если вы хотите, чтобы он был по центру.

android: layout_centerInParent = "true", если вы хотите, чтобы TextView находился в центральной позиции родительского представления. android: layout_centerHor horizontal = "true", если вы хотите, чтобы TextView находился в горизонтальном центре родительского представления. android: layout_centerVertical = "true", если вы хотите, чтобы TextView располагался вертикально в центре родительского представления.

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

android:gravity="center_horizontal" для выравнивания текста по центру по горизонтали. android:gravity="center_vertical" для выравнивания текста по центру по вертикали. android:gravity="center" для выравнивания текста по центру как по вертикали, так и по горизонтали.

<TextView
        android:layout_width="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_height="match_parent" />
4
ответ дан Anil 6 April 2018 в 14:40
поделиться

Попробуйте, это будет работать

<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>
4
ответ дан V-rund Puro-hit 6 April 2018 в 14:40
поделиться

используйте приведенный ниже код в xml, это сработало для меня, вы можете изменить ориентацию в центре

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:background="@color/colorPrimaryDark"
        android:gravity="center"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/id_text"
            android:layout_width="wrap_content"
            android:textSize="18sp"
            android:textColor="@android:color/white"
            android:textStyle="normal"
            android:layout_height="wrap_content"
            android:text="centre me"/>
    </LinearLayout>
3
ответ дан koteswara D K 6 April 2018 в 14:40
поделиться

Я не думаю, что вам действительно нужно сделать это, просто определите ваш TextView в файле макета, как это

<RelativeLayout
    android:layout_width="width"
    android:layout_height="height">
    <TextView
        android:id="@+id/yourid"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your text" />
</RelativeLayout>
3
ответ дан Mansuu.... 6 April 2018 в 14:40
поделиться

Допустим, Full Textview на экране

 <TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Hello World!"
    android:gravity="center"
    />

Предположим, Textview (не полный) в относительной компоновке

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_centerInParent=true
    />

Допустим, Textview (не полный) в Linear_layout

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_gravity="centre"
    />
1
ответ дан 6 April 2018 в 14:40
поделиться
Другие вопросы по тегам:

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