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