Класс Android TextView
имеет встроенную возможность «многоточия» текста, усечения его и добавления многоточияесли текст длиннее доступного пространства.Вы можете использовать это, например, через атрибут android:ellipsize
.Это работает довольно хорошо, по крайней мере, для однострочного текста.
Многоточие, которое использует Android, не состоит из трех периодов.Скорее он использует фактический символ многоточия, где три точки содержатся в одном глифе.Следовательно, любой шрифт, который вы используете и используете функцию «многоточия», будет нуждаться в многоточии глифа.
Кроме того, Android дополняет строку, отображаемую на экране, так что длина (в символах) одинаково до и после "многоточия".Для этого Android заменяет один символ многоточием и заменяет все остальные удаленные символы символом Юникод «ZERO WIDTH NO-BREAK SPACE» (U+FEFF
).Это означает, что «лишние» символы после многоточия не занимают видимого пространства на экране, но они могут быть частью строки.
Однако это означает, что любые пользовательские шрифты, которые вы используете для TextView
виджетов, которыевы используете с android:ellipsize
также должен поддерживать этот специальный символ Unicode.Не все шрифты делают, и вы получите артефакты в экранном представлении ваших укороченных строк, если ваш шрифт не имеет этого символа (например, мошеннические X появляются в конце строки).