Android: TextView автоматически обрезает и заменяет последние 3 символа строки

Если String длиннее ширины TextView , она автоматически переносится на следующую строку. Я могу избежать этого, используя android:singleLine (устаревший) или установив android:inputType="text" . Теперь мне нужно что-то, что заменяет последние 3 символа моей String « ». Поскольку я не использую моноширинный шрифт, это всегда будет отличаться в зависимости от букв, используемых в моей String . Поэтому мне интересно, какой лучший способ получить последние 3 символа строки в TextView и заменить их. Возможно, в платформе Android уже реализовано что-то, так как это должна быть общая проблема.

Solutions Collecting From Web of "Android: TextView автоматически обрезает и заменяет последние 3 символа строки"

Вы должны иметь возможность использовать свойство «эллипсизация» текстового вида:

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_mytext" android:ellipsize="end" android:singleLine="true" /> 

Вам также может потребоваться применить значения гравитации к макету; Я иногда видел «автоматическое растяжение» без них.

Нашел интересную работу по этой проблеме.

 maxLines=1 ellipsize=end scrollHorizontally=true 

Фокус в том, что последнее утверждение о горизонтальной прокрутке … проверьте это. Это, по крайней мере, работает на v2.2.

С программным

Вы можете использовать

 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);