Автоматическая замена последних символов в TextView Android

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

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

Java
Скопировать код
String truncateEnd(String text) {
    return text.length() > 3 ? text.substring(0, text.length() – 3) + "..." : text;
}

Далее эту обработанную строку необходимо присвоить TextView:

Java
Скопировать код
textView.setText(truncateEnd("Пример длинной строки"));

Метод truncateEnd вырезает последние три символа из строки и, если длина строки превышает три символа, добавляет многоточие.

Кинга Идем в IT: пошаговый план для смены профессии

Обрезка текста на уровне XML

Если вы хотите обрезать текст с помощью XML, настройте атрибуты TextView следующим образом:

xml
Скопировать код
<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Пример длинной строки"
    android:ellipsize="end"
    android:maxLines="1"
    android:scrollHorizontally="true"
    android:gravity="end"/>

При данных настройках осуществляется автоматическая обрезка текста с добавлением многоточия в конце. Дополнительный код при этом писать не придется.

Сводка: Применение кода в действии

Если вы отдаёте предпочтение программному подходу, то примените в коде следующие строки:

Java
Скопировать код
textView.setEllipsize(TextUtils.TruncateAt.END);
textView.setSingleLine(true);

Вышеперечисленный код позволяет TextView отображать текст в одной строке и обрезать его в конце в реальном времени.

Визуализация

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

Моноширинные шрифты и Обрезка: Завораживающий роман

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

Мировая арена: RTL и Специальные символы

Использование многоточий находит свое применение и в строках, написанных справа налево. TextView обрабатывает такие особенности, как отображение эмодзи и восточных символов.

Доступность: не просто слово на букву "Д"

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

Полезные материалы

  1. Документация по настройке эллипсизации TextView для Android.
  2. Справочник Java с пояснениями о методе substring.
  3. Всё, что нужно знать о TextView и атрибуте ellipsize в Android.
  4. Советы по расчёту ширины строки в Android.
  5. Рекомендации по измерению размера текста и его отображению.
  6. Обсуждения и способы удаления последнего символа из строки в Java.