¿Qué significa elipsis en Android?

199

He añadido un EditText a mi diseño, agregué una pista y la hice centrada horizontalmente.

Al ejecutar la aplicación, la sugerencia era invisible. Descubrí que debería hacer el ellipsizevalor de TextViewser start:

<EditText
    android:id="@+id/number1EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="start"
    android:ems="10"
    android:gravity="center_horizontal"
    android:hint="@string/hint1" />

En la documentación de Android, leo:

Si se establece, hace que las palabras que son más largas que la vista sean anchas se
elipsen en lugar de dividirse en el medio.

El problema es que ellipsizeno se encuentra en el diccionario. ¿Alguien puede explicarme qué beneficios podemos obtener por ellipsizeatributo? ¿Y cuál es la diferencia entre start, end, middle?

Hamzeh Soboh
fuente
amablemente refiera mi respuesta actualizada.
Rinkal Bhanderi
2
por cierto: la palabra real "elipses" está inventada. Se llama "verbing un sustantivo" y es una forma común de formar jerga informática. El sustantivo es "elipse", que supongo que sabes, y se convierte en un verbo al agregar el final "-ize", que significa "hacer en", por lo que puedes inferir que "ellipsize" es "agregar un elipse a alguna cosa".
Michael Edenfield
44
Antiguo error ortográfico, nunca corregido. El término en realidad debería ser "puntos suspensivos". Elipse es una curva en un plano que rodea dos puntos focales, de modo que se dibuja una línea recta desde uno de los puntos focales hasta cualquier punto de la curva. Los puntos suspensivos son los tres puntos.
radley
La documentación de ellipseSize tiene una descripción faltante, todavía.
Talha
Todavía corta las palabras a la mitad para mí. Necesito palabras para permanecer en una sola pieza. maldita sea
filthy_wizard

Respuestas:

388

Puede encontrar documentación aquí .

Según sus requisitos, puede probar según la opción.

a ellipsize , un neologismo, medios para texto acortar utilizando una elipsis , es decir, tres puntos ...o más comúnmente ligadura , para estar en para los bits omitidos.

Digamos que el valor original de la vista de texto pf es aaabbbccc y se ajusta dentro de la vista

startLa salida será: ... bccc

endLa salida será: aaab ...

middleLa salida será: aa ... cc

marqueeLa salida será: aaabbbccc auto deslizamiento de derecha a izquierda

Rinkal Bhanderi
fuente
Gracias. Pero ya lo he leído. Utiliza la palabra "elipsis" donde estoy buscando su significado. ¡La palabra no se puede usar en su definición! Cualquier otra explicación por favor?
Hamzeh Soboh
60

para mi experiencia, Elipsis funciona solo si se establecen dos atributos a continuación.

android:ellipsize="end"
android:singleLine="true"

para el ancho de textview, wrap_content o match_parent deberían ser buenos.

Céfiro
fuente
2
En realidad, android:singleLinequedó en desuso desde el nivel 3 de API, por lo tanto, úselo android:maxLines. Tenga en cuenta:> si se proporcionan singleLine y inputType, los indicadores inputType anularán el valor de singleLine. Echa un vistazo a los documentos en R.attr.html # singleLine
Filipe Bezerra de Sousa
1
@AlbertoGaona He notado que no funciona si android: ellipsize = "start" y android: maxLines = "2" (o más). No he visto ningún punto al principio, aunque el texto era demasiado largo.
ka3ak
17

How to Add an ellipsis in a TextView

android: ellipsize agregado en el nivel 1 de API. Una elipsis es tres períodos seguidos. (...)

En tu Xml

 <TextView
       ....
       android:text="Hi I am Amiyo,you can see how to ellipse works."
       android:ellipsize = "end"  
   />

En este punto, los puntos suspensivos no se mostrarán aún ya que TextView está configurado para expandirse automáticamente por defecto cuando se ingresa texto nuevo. Tendrá que limitar TextView de alguna manera. Haga esto, puede usar agregar a su TextView a scrollHorizontally, minLines, or maxLinespara que se muestren los puntos suspensivos.

Para hacer la elipse:

    at the end: this is how it would...     
   use: android:ellipsize = "end"

Y

 in the middle: this is ...how it would
use: android:ellipsize = "middle"

Y

 at the start: ...this is how it would
use: android:ellipsize = "start"

Y

 to have no ellipse
use: android:ellipsize = "none"

Nota por favor:

 Do not use android:singeLine = "true", it is deprecated.
android:maxLines = "1" will not display the three dots (...)
android:lines = "1" will not display the three dots (...)

Para más detalles puedes visitar aquí

http://developer.android.com/reference/android/widget/TextView.html#attr_android%3aellipsize

IntelliJ Amiya
fuente
10

Una elipsis es tres períodos seguidos ...

TextView usará puntos suspensivos cuando no pueda expandirse para mostrar todo su texto. El atributo ellipsizedestablece la posición de los tres puntos si es necesario.

Sam
fuente
5

Texto:

 This is my first android application and
 I am trying to make a funny game,
 It seems android is really very easy to play.

Suponga que arriba está su texto y si está usando ellipsizeel startatributo se verá así

This is my first android application and
...t seems android is really very easy to play.

con endatributo

 This is my first android application and
 I am trying to make a funny game,...
subodh
fuente
3

Aquí hay un ejemplo de cómo funciona el elipsis sin usar obsoleto android:singleLine="true"en un diseño de restricción:

<TextView
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:textSize="13sp"
   android:ellipsize="end"
   android:maxLines="2"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   tools:text="long long long long long long text text text" />

recuerde que si tiene un texto que se supone que está en una sola línea, cambie maxLines a 1.

MojAmiri
fuente
Gracias, esta solución solucionó mi problema. La clave es en android:layout_width="0dp"lugar de android:layout_width="wrap_content". Tenga en cuenta que esto es aplicable porque estoy usando a ConstraintLayout. También discutido aquí stackoverflow.com/a/48149405/2848676
Michael Osofsky
1

Nota: su texto debe ser más grande que la caja del contenedor para que se marque lo siguiente:

 android:ellipsize="marquee"    
ksu
fuente
1

Establezca esta propiedad para editar texto. Elipsize funciona con deshabilitar editar texto

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

o setKeyListener (nulo);

Mubarak
fuente
el conjunto mencionado anteriormente menciona todas las propiedades y setKeyListener (nulo) excepto las propiedades editables.
Mubarak
0

Use elipsis cuando tenga un ancho fijo, luego truncará automáticamente el texto y mostrará los puntos suspensivos al final,

no funcionará si configura layout_width como wrap_content & match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Muthuraman Sundararaj
fuente