Android: TextView trunca y reemplaza automáticamente los últimos 3 caracteres de String

Si un String es más largo que el TextView del TextView , automáticamente se ajusta a la siguiente línea. Puedo evitar esto usando android:singleLine (obsoleto) o estableciendo android:inputType="text" . Lo que necesito ahora es algo que reemplaza los últimos 3 caracteres de mi String con ” “. Como no estoy usando una fuente monoespacial, esto siempre será diferente dependiendo de las letras usadas en mi String . Así que me pregunto cuál es la mejor manera de obtener los últimos 3 caracteres de un String en un TextView y reemplazarlos. Tal vez ya haya algo implementado en el marco de Android, ya que este debe ser un problema común.

Debería poder usar la propiedad “ellipsize” de una vista de texto:

  

Es posible que también deba aplicar valores de gravedad al diseño; A veces he visto vistas de “estiramiento automático” sin ellas.

Encontré un trabajo-ronda interesante para este problema.

 maxLines=1 ellipsize=end scrollHorizontally=true 

El truco es esa última afirmación sobre el desplazamiento horizontal … compruébalo. Al menos funciona en v2.2.

Programáticamente, puedes usar:

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