Android text align justify

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). Не стесняйтесь, конечно, заменить мое имя пакета вашим.

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

Читайте также:  Календарь 2021 для андроида

Добавьте указанный выше класс в папку 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» к элементам, которые вы хотели бы видеть снаружи ВЛЕВО и ВПРАВО.

Источник

Android TextView Justify Text

Как вы получаете текст a, TextView который будет оправдан (с текстом сбоку на левой и правой сторонах)?

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

Я не верю, что Android поддерживает полное оправдание.

ОБНОВЛЕНИЕ 2018-01-01 : Android 8.0+ поддерживает режимы выравнивания с TextView .

Ответ @CommonsWare правильный. Android 8.0+ поддерживает «Полное обоснование» (или просто «Обоснование», как это иногда называют неоднозначно).

Android также поддерживает «выравнивание текста по левому / правому краю». См. Статью об оправдании в Википедии . Многие люди считают, что концепция «выравнивания» включает в себя полное выравнивание, а также выравнивание текста влево / вправо, что они и ищут, когда хотят выполнить выравнивание текста влево / вправо. Этот ответ объясняет, как добиться выравнивания текста влево / вправо.

Можно добиться выравнивания текста по левому / правому краю (в отличие от полного выравнивания, о чем вопрос). Для демонстрации я буду использовать базовую форму с двумя столбцами (метки в левом столбце и текстовые поля в правом столбце) в качестве примера. В этом примере текст в метках в левом столбце будет выровнен по правому краю, поэтому они будут отображаться вровень с текстовыми полями в правом столбце.

Читайте также:  Flip diving для андроид

В макете XML вы можете заставить сами элементы TextView (левый столбец) выравниваться вправо, добавив следующий атрибут во все TextViews:

Однако если текст переносится на несколько строк, текст все равно будет выровнен по левому краю внутри TextView. При добавлении следующего атрибута фактический текст выравнивается по правому краю (неровно по левому краю) внутри TextView:

Таким образом, атрибут gravity определяет, как выровнять текст внутри TextView layout_gravity указывает, как выровнять / расположить сам элемент TextView.

Источник

Android text align justify

LIBRARY IS NO LONGER MAINTAINED

If you want to adopt + maintain this library, please drop me a message — bluejamesbond@gmail.com


Android Full Justification

This library will provide you a way to justify text. It supports both plain text and Spannables. Additionally, the library can auto-hyphentate your displayed content (thanks to @muriloandrade).

Compatible for Android 2.2 to 5.X

  • FacebookMessengerBot.js — a Node ES5/6 API for the new Facebook Messenger Bot Platform
  • Scribe.js — a Node ES5/6 logging system with a web interface

#Recent 01/11/2015 ► Added support for very long documents with fading and progress listener
01/10/2015 ► Refractored / renamed classes
01/04/2015 ► Improved caching support which allows for smooth scrolling
01/02/2015 ► Added XML attributes for DocumentView

For examples, tests, and API refer to the Android-TextJustify Wiki.

Just add to your build.gradle

Status Issues
CLOSED Scroll caching for very large documents i.e. > 4000 paragaphs
OPEN Add letter-spacing feature like CSS
OPEN Improve text strike-through
OPEN Improve text underline
CLOSED Support more features like TextView in terms of Paint settings

About

📄 Android Text Full Jusiftication / Wrapping / Justify / Hyphenate — V2.0

Источник

Android TextView Justify Text

November 2018

397k time

How do you get the text of a TextView to be Justified (with text flush on the left- and right- hand sides)?

I found a possible solution here, but it does not work (even if you change vertical-center to center_vertical, etc).

32 answers

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

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

Определить переменную и установить оправдает, чтобы быть правдой,

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

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

Используйте Paint.measureText () и друзей , чтобы получить длины слов и выложите их вручную на холсте в пользовательском представлении.

Вы должны установить

XML Layout: объявить WebView вместо TextView

код Java: набор текстовых данных в WebView

Это может решить вашу проблему. Его полностью работает для меня.

Для выравнивания текста в андроида я WebView

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

XML Layout: объявить WebView вместо TextView

код Java: набор текстовых данных в WebView

Это может решить вашу проблему. Его полностью работает для меня.

ОБНОВЛЕНО

Мы создали простой класс для этого. Есть два метода , чтобы достичь того, что вы ищете. Оба не требуют НИКАКОГО WebView и ОПОРЫ SPANNABLES .

ОПОРЫ : Android 2.0 5.x

НАСТРОИТЬ

СКРИНШОТ

XML Layout: объявить WebView вместо TextView

код Java: набор текстовых данных в WebView

Это может решить вашу проблему. Его полностью работает для меня.

XML Layout: объявить WebView вместо TextView

код Java: набор текстовых данных в WebView

Это может решить вашу проблему. Его полностью работает для меня.

ОБНОВЛЕНО

Мы создали простой класс для этого. Есть два метода , чтобы достичь того, что вы ищете. Оба не требуют НИКАКОГО WebView и ОПОРЫ SPANNABLES .

ОПОРЫ : Android 2.0 5.x

НАСТРОИТЬ

СКРИНШОТ

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

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

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

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

TextView В Android O предлагает полное обоснование (новая выключка) сам.

Вам просто нужно сделать это,

по умолчанию JUSTIFICATION_MODE_NONE .

@CommonsWare ответ является правильным. Android не поддерживает «Full Обоснование» (или просто «Оправдание», как это иногда двусмысленно называют).

Тем не менее, Android не поддерживает «Flush Left / Right Выравнивание текста». Смотрите статью Википедии на Обоснования для различения. Многие считают понятие «оправдания» , чтобы охватить полное обоснование, а также левое / правое выравнивание текста, который является то , что они в конечном итоге ищут , когда они хотят , чтобы сделать левые / правое выравнивание текста. Этот ответ объясняет , как достичь левого / правого выравнивания текста.

Можно достичь Flush влево / вправо Выравнивание текста (в отличие от полного оправдания, так как вопрос спрашивает о). Для демонстрации я буду использовать базовую форму 2-колонки (метки в левой колонке и текстовых полей в правой колонке) в качестве примера. В этом примере текст в этикетках в левой колонке будет выровнен по правому краю, таким образом они появляются вспыхивать против их текстовых полей в правой колонке.

В макете XML вы можете получить элементы TextView сами (левый столбец), чтобы выровнять вправо, добавив следующий атрибут внутри все TextViews:

Однако, если текст обтекает на несколько строк, текст будет по-прежнему находиться на одном уровне слева выравнивается внутри TextView. Добавление следующего атрибута делает фактический текст по правому краю выровненного (рваные левый) внутри TextView:

Таким образом, гравитация атрибут определяет способ выравнивания текста внутри TextView layout_gravity указывает , как выравнивать / макет сам элемент TextView.

Источник

Читайте также:  Error launching android studio что это
Оцените статью