Если a String длиннее ширины TextView, он автоматически переносится на следующую строку. Я могу избежать этого, используя android:singleLine (устаревший) или установив android:inputType="text". Теперь мне нужно что-то, что заменяет последние 3 символа моего String на "...". Поскольку я не использую моноширинный шрифт, это всегда будет отличаться в зависимости от букв, используемых в моем String. Поэтому мне интересно, какой лучший способ получить последние 3 символа строки в TextView и заменить их. Возможно, в платформе Android уже реализовано что-то, так как это должна быть общая проблема.
Android: TextView автоматически усекает и заменяет последние 3 char строки
Ответ 1
Вы должны иметь возможность использовать свойство "эллипсис" текстового вида:
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>
Вам также может потребоваться применить значения гравитации к макету; Я иногда видел "автоматическое растяжение" без них.
Ответ 2
Нашел интересную работу по этой проблеме.
maxLines=1
ellipsize=end
scrollHorizontally=true
Фокус в том, что последнее утверждение о горизонтальной прокрутке... проверьте его. Это по крайней мере работает на v2.2.
Ответ 3
с программным
Вы можете использовать
TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);