Android: TextView automáticamente truncar y reemplazar los últimos 3 caracteres de String
Si una String
es más larga que la anchura de TextView
, ésta se enrolla automáticamente en la línea siguiente. Puedo evitar esto usando android:singleLine
(obsoleta) o estableciendo android:inputType="text"
. Lo que necesito ahora es algo que reemplaza los últimos 3 caracteres de mi String
con " … ". Puesto que no estoy usando una fuente monospace esto será siempre 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 una cadena en un TextView
y reemplazarlos. Tal vez ya hay algo implementado en el marco de Android, ya que este debe ser un problema común.
- Cómo alinear drawableLeft a la parte superior en lugar de centrarse en Android TextView?
- ¿Cómo se utiliza EasyEditSpan en Android para permitir la edición parcial de texto?
- Pellizcar Zoom en el texto de vista Android
- Cómo obtener texto de textview
- Tamaño de texto de Android por programa demasiado grande
- Fundido de fondo de un android de vista de texto
- ¿Por qué TextView (con un ID) no guarda automáticamente su estado?
- Android: ClickableSpan en TextView seleccionable
- ¿Cómo obtengo el color de fondo de un TextView?
- Android TextView no actualiza su texto cuando textIsSelectable está establecido en true
- Android textview settext mostrar nullpointer excepción
- Android: Crear TextView que parpadea cuando se hace clic
- TextView - OnClick - Android
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:singleLine="true" />
También puede ser necesario aplicar valores de gravedad a la disposición también; A veces he visto "auto-stretching" vistas sin ellos.
Encontramos un trabajo interesante para este problema.
maxLines=1 ellipsize=end scrollHorizontally=true
El truco es que la última declaración sobre el desplazamiento horizontal …. echa un vistazo. Por lo menos, funciona en v2.2.
Con programaticamente
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);
- ¿Agregar y quitar vistas en Android dinámicamente?
- Cómo generar Diagrama de Clases (UML) en Android Studio