Android: Vista de Texto truncar y reemplazar 3 El último carácter de cadena de forma automática
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.
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);