Android textview vertical align

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

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

30 ответов

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

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

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

это сделает трюк

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

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

вы также можете использовать комбинацию:

тогда, если ширина textview больше, чем» fill_parent», текст все равно будет выровнен влево (не центрирован, как при гравитации, установленной только в»центр»).

применить силы тяжести:

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

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

необходимо указать Гравитация TextView (центр горизонтальный и Центр вертикальный), как это:

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

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

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

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

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

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

Для Линейной Компоновки: В XML используйте что-то вроде этого

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

для относительного макета: в XML используйте что-то вроде этого

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

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

шаблон

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

использовать относительный макет

и для другого макета

при использовании gravity works для TextView существует альтернативный метод, реализованный на уровне API 17 —

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

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

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

следующее прекрасно работает для меня.

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

на RelativeLayout:

на LinearLayout:

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

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

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

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

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

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

как многие ответы предлагают выше, работает нормально.

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

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

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

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

Читайте также:  Apus browser pro для андроид

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

и Pro-грамматически родитель является RelativeLayout java-код это во время выполнения использовать что-то вроде этого в вашей деятельности

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

мы можем достичь этого с помощью этих нескольких способов: —

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

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

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

TextView gravity работает в соответствии с вашим родительским макетом.

LinearLayout:

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

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

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

RelativeLayout:

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

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

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

android: gravity= «center_vertical» внутренний текст, если вы хотите вертикально по центру.

android: layout_centerInParent= » true» если вы хотите TextView в центральной позиции родительского представления. android: layout_centerHorizontal= «true», если вы хотите TextView в горизонтальном центре родительского представления. android: layout_centerVertical= «true», если вы хотите TextView в вертикальном центре родительского представления.

Источник

Android TextView: выравнивание текста по ширине

Как добиться выравнивания текста в TextView (с выравниванием текста слева и справа)?

Я нашел возможное решение здесь, но оно не работать (даже если вы измените vertical-center на center_vertical и т. д.).

26 ответов

Для выравнивания текста в android я использовал WebView

Я пока не могу загрузить изображения, чтобы доказать это, но «у меня это работает».

TextView в Android O предлагает полное выравнивание (новое типографское выравнивание).
Вам просто нужно сделать это:

Котлин

Java

XML

По умолчанию: JUSTIFICATION_MODE_NONE ( none в xml).

ОБНОВЛЕНО

Мы создали для этого простой класс. В настоящее время есть два метода достижения того, что вы ищете. Оба требуют НЕТ WEBVIEW и ПОДДЕРЖИВАЕТ SPANNABLES .

ПОДДЕРЖКА : Android 2.0 до 5.X

НАСТРОЙКА

Вы можете использовать проект JustifiedTextView для Android в github. это настраиваемый вид, имитирующий для вас выровненный по ширине текст. Он поддерживает Android 2.0+ и языки справа налево.

Для этого я пишу базу виджетов на собственном текстовом представлении.

Я нашел способ решить эту проблему, но это может быть не очень изящно, но эффект неплохой.

Его принцип заключается в замене пробелов в каждой строке на ImageSpan фиксированной ширины (цвет прозрачный).

Очень просто Мы можем сделать это в файле xml

Вот как я это сделал, на мой взгляд, самый элегантный способ. При использовании этого решения единственное, что вам нужно сделать в макетах:

  • добавить дополнительную декларацию xmlns
  • измените пространство имен исходного текста TextView s с android на новое пространство имен
  • замените TextView на x.y.z.JustifiedTextView

Вот код. Прекрасно работает на моих телефонах (Galaxy Nexus Android 4.0.2, Galaxy Teos Android 2.1). Не стесняйтесь, конечно, заменить мое имя пакета вашим.

Читайте также:  2 ghz cpu android

/assets/justified_textview.css :

/res/values/attrs.xml :

/res/layout/test.xml :

/src/net/bicou/myapp/widget/JustifiedTextView.java :

Нам нужно настроить рендеринг на программное обеспечение, чтобы получить прозрачный фон на Android 3+. Отсюда и проблема для более старых версий Android.

Надеюсь это поможет!

PS: пожалуйста, обратите внимание, что может быть полезно добавить это ко всей вашей деятельности на Android 3+, чтобы получить ожидаемое поведение:
android:hardwareAccelerated=»false»

Хотя вы все еще не полностью выровненный по ширине текст, теперь вы можете сбалансировать длину строк с помощью android:breakStrategy=»balanced» , начиная с API 23.

Выравнивание текста Android для TextView XML

Просто Android с выравниванием текста по ширине в XML. Вы можете просто реализовать в виджете textview.

По умолчанию android:justificationMode=»none»

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

  1. Текстовый объект просмотра
  2. Ширина содержимого (общая ширина вашего текстового представления)

FILL_HORIZONTAL эквивалентно CENTER_HORIZONTAL . Вы можете увидеть этот фрагмент кода в исходном коде textview:

Для этой проблемы существует CustomView, это настраиваемое текстовое представление поддерживает Justified Text View.

Добавьте указанный выше класс в папку src и используйте этот пример кода для добавления в свой макет:

Просто импортируйте два файла «TextJustifyUtils.java» и «TextViewEx.java» в свой проект.

Теперь, если вы используете обычный textView, например:

Определите переменную и установите для параметра justify значение true,

Обоснование содержания TextView: Его простые ребята просто используют android: justificationMode = «inter_word» в вашем теге TextView.

Просто попробуйте это,

Надеюсь на эту помощь!

Я думаю, что есть два варианта:

Используйте что-то вроде Pango, который специализируется на этом через NDK, и визуализируйте текст в OpenGL или на другой поверхности.

Android пока не поддерживает полное обоснование. Мы можем использовать Webview и выравнивать HTML вместо использования textview. Это прекрасно работает. Если вам непонятно, не стесняйтесь спрашивать меня 🙂

На android, чтобы выровнять текст по левому краю и не иметь усечения цвета фона, попробуйте это, у меня это сработало, давая согласованные результаты на android, ff, т.е. и chrome, но вы должны измерить пространство, которое осталось между текстом при расчете заполнения.

Хакерством является padding-right:1000px; , который сдвигает текст в крайнее левое положение.

Любая попытка сдвинуть код влево или по ширине в css или html приводит к созданию фона только половинной ширины.

Эта строка кода сделает ваш текст оправданным

Вы можете использовать justificationMode как inter_word в xml. Вы должны помнить, что этот атрибут доступен для уровня API 26 и выше. Для этого вы можете назначить targetApi как o. Полный код приведен ниже.

Попробуйте использовать RelativeLayout > (обязательно fill_parent), затем просто добавьте android:layout_alignParentLeft=»true» и

android:layout_alignParentRight=»true» к элементам, которые вы хотели бы видеть снаружи ВЛЕВО и ВПРАВО.

Источник

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

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

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

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

Это сделает трюк

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

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

Вы также можете использовать комбинацию:

Читайте также:  Android не удается открыть файл apk

Затем, если ширина текста больше, чем «fill_parent», текст по-прежнему будет выровнен влево (не с центром, как с гравитацией, установленной только до «центра»).

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

Вам необходимо установить TextView Gravity (Center Horizontal & Center Vertical) следующим образом:

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

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

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

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

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

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

Который лучше, чем,

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

Для линейной компоновки: в XML используйте что-то вроде этого

Для этого во время выполнения используйте что-то подобное в своей деятельности

Для относительной компоновки: в XML используйте что-то вроде этого

Для этого во время выполнения используйте что-то подобное в своей деятельности

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

Файл макета

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

Используйте это для относительной компоновки

И для другого макета

При использовании гравитационных работ для TextView существует альтернативный метод, реализованный в интерфейсе API 17 –

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

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

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

Следующие работы прекрасно для меня.

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

Вы можете просто настроить gravity текста в CENTER .

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

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

Если вы используете Relative Layout:

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

Как многие ответы предлагают выше работает отлично.

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

Или просто горизонтально:

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

Высота и ширина TextView – это содержимое контуров, тогда текст внутри текстового поля всегда будет центрирован, а затем создайте центр в своем родительском макете, используя:

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

И prog grammatically parent – это Java-код RelativeLayout, который во время выполнения использует что-то подобное в вашей деятельности

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

Для RelativeLayout:

Для LinearLayout:

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

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

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

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

Источник

Оцените статью