Android: Vista de Texto truncar y reemplazar 3 El último carácter de cadena de forma automática

StackOverflow https://stackoverflow.com/questions/1666736

  •  13-09-2019
  •  | 
  •  

Pregunta

Si un String es más largo que el ancho de la TextView se envuelve automáticamente en la siguiente línea. Puedo evitar esto mediante el uso de android:singleLine (en desuso) o estableciendo android:inputType="text". Lo que necesito ahora es algo que sustituye a los 3 últimos caracteres de mi String con " ... ". Ya que no estoy usando una fuente de espacio sencillo esto siempre será diferente dependiendo de las letras usadas en mi String. Así que me pregunto cuál es la mejor manera de conseguir los 3 últimos caracteres de una cadena en un TextView y reemplazarlos. Tal vez ya hay algo en marcha en el marco de Android, ya que este debe ser un problema común.

¿Fue útil?

Solución

Usted debe ser capaz de utilizar 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"
/>

También puede ser necesario para aplicar los valores de gravedad a la disposición también; He visto a veces "auto-estiramiento" vistas sin ellos.

Otros consejos

Encontrados una interesante trabajo-a-ronda para este problema.

maxLines=1
ellipsize=end
scrollHorizontally=true

El truco es que la última declaración sobre el desplazamiento horizontal .... echar un vistazo. Por lo menos, trabaja en v2.2.

Mediante programación, puede utilizar:

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top