Если 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);