java - plain - textview layout android
Android: TextView trunca y reemplaza automáticamente los últimos 3 caracteres de String (3)
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:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
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.
con 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);