Я предполагаю, что вы используете макет 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);
Это не работает при использовании с RelativeLayout, где высота и ширина макета установлены на wrap_content.
@Rob, если ширина и высота равны wrap_content, то технически текст уже центрирован.
Если я хочу выровнять TextView относительно другого представления, но текст центрирован сам по себе?
Если вы такой же минималист, как я, можете отбросить теги макета.
У меня это не работает (android:gravity = "center"). Он по-прежнему отображается в крайнем левом углу экрана. :(
похоже, что ваши ширина и высота Textviews установлены на wrap_content. Если это так, вы можете установить layout_gravity в центр
Не путать с android:layout_gravity = "center", который делает что-то еще.
В относительной компоновке, если вы установите: android:layout_width = "wrap_content", android:layout_height = "wrap_content" и android:gravity = "center", это работает для меня.
гравитация = центр не работает. Высота текстового изображения = 34 dp и ширина = 100 dp. Пожалуйста, помогите
Не забывайте, есть еще center_veritcal и center_horizontal.
@ Роб, относительный макет предоставляет android: layout_centerInParent = "true"
вы также можете вручную установить высоту и ширину на определенное значение, чтобы реализовать гравитацию.
Мне нужно было убедиться, что высота была установлена на match_parent, прежде чем я смогу заставить gravity = "center" работать вертикально в дополнение к работе по горизонтали. (потому что, если бы я оставил его как wrap-content, даже если бы контент находился в углу родительского элемента, он не «выглядел» так, как будто он был центрирован, хотя технически это было так, но высота была меньше, чем у родительского элемента)
Ключ - android:layout_height = "match_parent" и android:gravity = "center". Если высота равна "wrap_content", это не сработает.
Это центрирует TextView, вопрос в том, как центрировать текст внутри TextView, и я считаю, что ответ: - android:textAlignment = "center"
Вы также можете настроить его динамически, используя:
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Или просто textview.setGravity (Gravity.CENTER);
Каковы критерии суждения, чтобы решить, какой способ выбрать, писать в xml или писать в файл Java?
@Kenju, если вы хотите, чтобы его можно было легко редактировать и значение не менялось во время выполнения: XML. Если вы должны изменить значение в реальном времени (например, изменить выравнивание, когда пользователь нажимает кнопку), вы можете сделать это только через Java.
@GustavoMaciel, так что в основном xml, если его не нужно динамически изменять ... Теперь я понял. Спасибо за простой и полезный ответ!
android:gravity = "center"
Это поможет
Чтобы это работало, текстовое представление должно быть match_parent или fill_parent. Если его содержимое обернуть, то оно не будет центрировано.
@KalelWade: центрирование текста в текстовом представлении с помощью wrap_content вообще не имеет смысла. Возможно, вы думаете о центрировании текстового представления в родительском представлении, и в этом случае вы просто помещаете эту строку в родительский.
@Mooing Duck Таким образом, причина не использовать перенос содержимого - это не имеет смысла. Но когда вы либо справляетесь и вставляете, либо просто торопитесь, вы не можете сложить два и два вместе. Вот почему я упомянул об этом.
если TextView с шириной и высотой, равной «wrap_content», находится внутри LinearLayout с шириной и высотой «match_parent», тогда вам необходимо установить layout_gravity Linear_layout.
@MooingDuck, когда высота равна «wrap_content», а гравитация - «center_vertical», в дизайне (предварительный просмотр) он рисуется по центру, но на устройстве он располагается вверху. Так что сделайте высоту match_parent и установите гравитацию на center_vertical или center.
Если вы используете 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>
Интересно. Необходимо проверить, действительно ли это для LinearLayout (родительский элемент TableRow).
android:layout_centerInParent = "true"
Это работает при использовании с RelativeLayout, где высота и ширина макета установлены на wrap_content.
Это центрирует TextView, а не текст в нем.
Это НЕ работает, если в TextView есть перенос слов. Текст будет полноширинным, многострочным и выровненным по левому краю в пределах TextView. На дисплее он будет выровнен по левому краю. Вы должны использовать «гравитацию», как указано в других ответах.
Вам нужно установить TextView Gravity (центр по горизонтали и центр по вертикали) следующим образом:
android:layout_centerHorizontal = "true"
а также
android:layout_centerVertical = "true"
И динамически используя:
textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Семантика кода неправильная. Замените layout_centerhorizontal и layout_centervertical на layout_centerHorizontal и layout_centerVertical («H» и «V» в верхнем регистре, иначе это не сработает).
layout_ * сообщает родителю View, где он хочет быть. Без layout_ * сообщает View, как разместить его компоненты
Если вы пытаетесь центрировать текст в 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>
По моему мнению,
android:gravity = "center"
Это лучше чем,
android:layout_centerInParent = "true"
что лучше, чем
android:layout_centerHorizontal = "true"
android:layout_centerVertical = "true"
хотя бы для форматирования текста.
В 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>
Вы также можете использовать комбинацию:
android:gravity = "left|center"
Затем, если ширина textview больше, чем «fill_parent», текст все равно будет выровнен по левому краю (не по центру, как с гравитацией, установленной только в «center»).
Вы можете просто установить gravity вашего текстового представления в CENTER.
Просто в вашем XML-файле установите гравитацию текстового представления в центр:
<TextView
android:gravity = "center" />
Применить гравитацию:
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"
/>
Вот мой ответ, который я использовал в своем приложении. Он показывает текст в центре экрана.
<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" />
Как многие ответы предлагают выше, работает нормально.
android:gravity = "center"
Если вы хотите центрировать его только по вертикали:
android:gravity = "center_vertical"
или просто по горизонтали:
android:gravity = "center_horizontal"
Хотя использование гравитации работает для TextView, на уровне API 17 реализован альтернативный метод -
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
Не знаю разницы, но тоже работает. Однако только для уровня API 17 или выше.
Разница описана здесь: stackoverflow.com/questions/16196444/…
Это действительно центрирует текст в TextView. Если вы просто используете гравитацию, есть небольшое отступление в зависимости от текста ... Например, если у вас есть маленький значок в виде кружка с текстом в центре, вы можете увидеть очень очевидную разницу.
Используйте в файле 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);
Используйте это для относительного макета
android:layout_centerInParent = "true"
и для другого макета
android:gravity = "center"
<TextView
android:id = "+@id/textView"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:gravity = "center"
/>
Вы пробовали этот способ?
<TextView
android:id = "+@id/txtVw"
android:gravity = "center"
/>
Это можно сделать двумя способами.
Первый в 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
В графическом редакторе вы найдете все возможные значения, даже увидите их результаты.
Для линейного макета: В XML используйте что-то вроде этого
<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"
/>
Чтобы сделать это во время выполнения, используйте что-то подобное в своей деятельности
TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Для относительного макета: в XML используйте что-то вроде этого
<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"
/>
Чтобы сделать это во время выполнения, используйте что-то подобное в своей деятельности
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);
Если вы используете относительную компоновку:
<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"/>
Самый простой способ (который, на удивление, упоминается только в комментариях, поэтому я публикую в качестве ответа):
textview.setGravity(Gravity.CENTER)
Если высота и ширина 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>
Высота и ширина 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);
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" />
Попробуйте так, это сработает
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "vertical"
android:gravity = "center">
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textAlignment = "center"
/>
</LinearLayout>
<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" />
И для тех, кто задается вопросом, как центрировать его по вертикали в элементе TextView, сохраняя при этом слева (по горизонтали):
android:gravity = "center"
android:textAlignment = "viewStart"
Установите атрибут гравитации в файле макета как
android:gravity = "center"
<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>
если у вас есть текстовое представление внутри linearlayout, вам нужно установить их гравитацию по центру
There are 2 ways to do this :
1. From Xml
use :
<TextView
.........
android:gravity = "center"/>
2. From Java class
use :
[textview].setGravity(Gravity.CENTER);
используйте приведенный ниже код в 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>
Я не думаю, что вам действительно нужно это сделать, просто определите свой 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>
Если вы работаете с RelativeLayout, попробуйте использовать это свойство внутри тега TextView:
android:layout_centerInParent= true
«Истина» должна быть заключена в кавычки.
Используйте android:gravity = "center" для решения вашей проблемы.
Вы можете сделать это, чтобы центрировать текст
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center" />
попробуй это :
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center"
/>
TextView Gravity работает в соответствии с вашим родительским макетом.
LinearLayout:
Если вы используете LinearLayout, вы найдете два атрибута гравитации андроид: гравитация и андроид: layout_gravity
android: gravity: представляет макет внутреннего текста TextView, в то время как android: layout_gravity: представляет позицию TextView в родительском представлении.
Если вы хотите установить текст по горизонтали и вертикали по центру, используйте следующий код
<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 = "center" для центра текста в TextView.
android: gravity = "center_horizontal" внутренний текст, если вы хотите горизонтально по центру.
android: gravity = "center_vertical" внутренний текст, если вы хотите вертикально по центру.
android: layout_centerInParent = "true", если вы хотите, чтобы TextView располагался по центру родительского представления. android: layout_centerHorizontal = "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>
Кстати, по какой причине вы откатились на предыдущую ревизию? Исправленная ревизия является хорошей практикой, так как то, что упомянул редактор, может помочь текстовым редакторам с кодировкой.
Вы можете центрировать текстовое представление с помощью android: gravity = "center"
Код выглядит следующим образом
<TextView
android:text = "@string/yourText"
android layout_height = "wrap_content"
android layout_height = "wrap_content"
android:gravity = "center" />
Если этот TextView не имеет атрибутов высоты / ширины, установленных на wrap_content, просто используйте android:gravity = "center". Но некоторые люди жалуются, что это не работает. Это потому, что их расположение не имеет такой же тяжести. Вы можете установить
android:layout_gravity = "center"В ТЕКСТЕВЬЮ (это применимо только к TextView)
или же
android:gravity = "center"В ПЛАНЕ РОДИТЕЛЯ (это будет применяться ко всем представлениям внутри него)
Я добавил фрагмент XML, чтобы центр текстового просмотра был согласован как с линейным, так и с относительным макетом.
В линейном макете
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Text In Center"
android:layout_gravity = "center"
android:gravity = "center"/>
В относительной компоновке
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:text = "Text In Center"
android:layout_centerInParent= true/>
В 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" />
How to center a view or its content e.g. TextView or Button horizontally and vertically? layout_gravity can be used to position a view in the center of its parent. While gravity attribute is used to position view’s content e.g. “text” in the center of the view.
(1) Центрировать TextView по горизонтали
<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” dose not work!!
Чтобы центрировать TextView по вертикали, вам нужно сделать хитрость. Поместите TextView в RelativeLayout, затем установите атрибут TextView android: layout_centerInParent = ”true”

<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:gravity=”center_horizontal"
(4) Центрировать текст по горизонтали и вертикали
android:gravity=”center” this will center the text horizontally and vertically
<TextView android:layout_width = "fill_parent" android:layout_height = "100dp" android:text = "Hello World!" android:gravity = "center" android:background = "#333" android:textColor = "#fff" />
Скажем, 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"
/>
Мы можем добиться этого несколькими способами:
XML method 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 method 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 method 03
<TextView
android:id = "@+id/textView"
android:layout_height = "match_parent"
android:layout_width = "wrap_content"
android:gravity = "center"
android:text = "@strings/text"
/>
XML method 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 method 01
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Java method 02
textview.setGravity(Gravity.CENTER);
Java method 03
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
С помощью файла .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);
Используйте свойство Gravity в TextView, чтобы центрировать текст по вертикали и горизонтали.
android:gravity = "center"
<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);
используйте android: gravity = "center" для родительского
<LinearLayout
android:layout_width = "200dp"
android:layout_height = "200dp"
android:gravity = "center"
>
<TextView
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:gravity = "center"
android:text = "Hello world"
/>
</LinearLayout>
Вот решение.
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center"
android:text = "**Your String Value**" />
Вы можете установить гравитацию по центру по вертикали и текст по центру.
<TextView
android:text = "@string/yourText"
android layout_height = "wrap_content"
android layout_height = "wrap_content"
android:gravity = "center_vertical"
android:textAlignment = "center" />
Для этого можно поменять android:gravity.
android:gravity = "center" или
если вы хотите центрировать по горизонтали или вертикали
android:gravity = "center_horizontal"
android:gravity = "center_vertical"
Вы можете сделать это программно в java с помощью: textview.setGravity (Gravity.CENTER);
android:gravity = "centre"
Это поможет вам центрировать текстовое изображение.
Вы должны установить Gravity следующим образом:
(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Попробуй это:
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center" />
<android.support.constraint.ConstraintLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
xmlns:app = "http://schemas.android.com/apk/res-auto">
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "HELLO"
android:textColor = "@color/colorPrimaryDark"
app:layout_constraintEnd_toEndOf = "parent"
app:layout_constraintTop_toTopOf = "parent"
app:layout_constraintStart_toStartOf = "parent"
app:layout_constraintBottom_toBottomOf = "parent"/>
</android.support.constraint.ConstraintLayout>
Попробуй это:
Using LinearLayout if you are using textview height and width match_parent You can set the gravity text to center and text alignment to center text horizontal if you are using textview height and width wrap_content then add gravity center attribute in your 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
You can programatically do like this:-
(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Спасибо
Если вы задаете ширину и высоту текстового представления, чтобы обернуть контент, вам нужно управлять его положением с помощью силы тяжести макета в соответствии с поддерживаемыми родительскими атрибутами. Остальное можно сделать.
<TextView
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:gravity = "center"/>
Ширина и высота Textview должны быть match_parent и добавить android: gravity = "center" в атрибуты textview.
Если у вас есть только один TextView в вашем XML-файле, вы можете сделать родительский вид гравитации в качестве центра. Это сделает ваш дочерний элемент в центре экрана, а затем вы сможете сделать свой дочерний элемент оберткой как по высоте, так и по ширине.
Используйте 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"
/>
textAlignment = "center" не будет работать, пока TextView не будет иметь размеры для match_parent
Пример @SAurabh выше работает без проблем.
работает ли он без гравитации по отношению к родительскому элементу или гравитация макета сама по себе? Выравнивание текста не будет выравнивать текст в пределах его границ просмотра, поэтому, пока textView не примет match_parent, в этом случае он не будет казаться таким без гравитации в его родительском макете или layout_gravity сам по себе
На самом деле, мы можем добиться большего, исключив fontPadding.
<TextView
android layout_height = "wrap_content"
android layout_height = "wrap_content"
android:includeFontPadding = "false"
android:textAlignment = "center"
/>
Для Котлин:
Если вы хотите центрировать TextView с помощью кода:
textView.gravity = Gravity.CENTER
Если вы хотите центр horizontally:
textView.gravity = Gravity.CENTER_HORIZONTAL
Или, центр vertically:
textView.gravity = Gravity.CENTER_VERTICAL
Почетное упоминание за запоздалый графический интерфейс
Я хотел добавить немного ценности этой и без того фантастической теме. И, наконец, по прошествии 11 лет у нас теперь есть способ перетащить TextView из панели инструментов и выбрать гравитацию в окне свойств графического интерфейса. И, к счастью, графический интерфейс сочетает свойства лаконично, как «center_vertical | center_horizontal».
<TextView
android:text = "This is my sample text."
android:layout_width = "match_parent"
android:layout_height = "35.7dp"
android:id = "@+id/textView2"
android:layout_marginBottom = "24.7dp"
android:typeface = "sans"
android:textSize = "20"
android:gravity = "center_vertical|center_horizontal" />
установите для layout_width и layout_height значение fill_parent, затем установите для гравитации значение center. Это поможет