Cosa significa ellissi in Android?


199

Ho aggiunto un EditText al mio layout, ho aggiunto un suggerimento e l'ho centrato orizzontalmente.

Durante l'esecuzione dell'applicazione, il suggerimento era invisibile. Ho scoperto che avrei dovuto ellipsizevalorizzare l' TextViewesserestart :

<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" />

Nella documentazione di Android, ho letto:

Se impostato, fa sì che le parole più lunghe della vista siano larghe
ellissizzare anziché spezzate al centro.

Il problema è che ellipsizenon si trova nel dizionario. Qualcuno può spiegarmi quali benefici possiamo ottenere dall'attributo ellipsize? E qual è la differenza tra start, end, middle?


si prega di fare riferimento alla mia risposta aggiornata.
Rinkal Bhanderi,

2
btw: viene inventata la parola reale "ellissized". Si chiama "verbing a noun" ed è un modo comune per formare il gergo informatico. Il nome è "ellisse" che presumo tu sappia, ed è trasformato in un verbo aggiungendo la desinenza "-ize" che significa "trasformare in", quindi puoi dedurre che "ellissize" è "aggiungere un'ellisse a qualcosa".
Michael Edenfield,

4
Vecchio errore di ortografia, mai corretto. Il termine dovrebbe in realtà essere "ellissi". Ellisse è una curva su un piano che circonda due punti focali in modo tale che una linea retta tracciata da uno dei punti focali a qualsiasi punto della curva. Le ellissi sono i tre punti.
Radley,

La documentazione di ellipseSize non contiene ancora una descrizione.
Talha

taglia ancora le parole a metà per me. ho bisogno di parole per rimanere in un unico pezzo. accidenti
filthy_wizard

Risposte:


388

Puoi trovare la documentazione qui .

In base alle tue esigenze puoi provare in base all'opzione.

a ellipsize , un neologismo, mezzi per accorciare testo utilizzando un'ellissi , cioè tre punti ...o più comunemente legatura , per sostituire i bit omesse.

Dire che il valore originale della vista di testo è aaabbbccc e il suo adattamento all'interno della vista

startL'output sarà: ... bccc

endL'output sarà: aaab ...

middleL'output sarà: aa ... cc

marqueeL'output sarà: aaabbbccc scorrimento automatico da destra a sinistra


Grazie. Ma l'ho già letto. Usa la parola "ellissi" dove sto cercando il suo significato. La parola non può essere usata nella sua definizione !! Ulteriori spiegazioni per favore?
Hamzeh Soboh,

60

per la mia esperienza, Ellissi funziona solo se sono impostati sotto due attributi.

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

per la larghezza della visualizzazione di testo, entrambi wrap_content o match_parent dovrebbero essere entrambi validi.


2
In realtà è android:singleLinestato deprecato dal livello API 3, quindi utilizzare invece android:maxLines. Nota:> se vengono forniti sia singleLine che inputType, i flag inputType sovrascriveranno il valore di singleLine. Consulta i documenti su R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona Ho notato che non funziona se android: ellipsize = "start" e android: maxLines = "2" (o più). All'inizio non ho visto alcun punto sebbene il testo fosse troppo lungo.
ka3ak,

17

How to Add an ellipsis in a TextView

android: ellissi aggiunta in API Level 1. Un'ellissi è di tre periodi di fila. (...).

Nel tuo Xml

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

A questo punto, i puntini di sospensione non verranno ancora visualizzati poiché TextView è impostato per espandersi automaticamente per impostazione predefinita quando viene inserito un nuovo testo. Dovrai limitare TextView in qualche modo. Per fare ciò, è possibile utilizzare uno dei due per TextView a scrollHorizontally, minLines, or maxLinesvisualizzare i puntini di sospensione.

Per creare l'ellisse:

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

E

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

E

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

E

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

Nota per favore:

 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 (...)

Per maggiori dettagli puoi visitare qui

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


10

I puntini di sospensione sono tre periodi consecutivi ...

TextView utilizzerà i puntini di sospensione quando non può espandersi per mostrare tutto il suo testo. L'attributo ellipsizedimposta la posizione dei tre punti se è necessario.


5

Testo:

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

Supponiamo che sopra sia il tuo testo e se stai usando ellipsizel' startattributo lo vedrai così

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

con endattributo

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

3

ecco un esempio di come funziona l' ellissi senza usare deprecato android:singleLine="true"in un ConstraintLayout:

<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" />

ricorda se hai un testo che dovrebbe essere in una sola riga, quindi modifica maxLines in 1.


Grazie, questa soluzione ha risolto il mio problema. La chiave è android:layout_width="0dp"invece di android:layout_width="wrap_content". Nota che questo è applicabile perché sto usando un ConstraintLayout. Anche discusso qui stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Nota: il testo deve essere più grande della casella del contenitore per la seguente selezione:

 android:ellipsize="marquee"    

1

Imposta questa proprietà per modificare il testo. Elipsize funziona con disabilita modifica testo

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

o setKeyListener (null);


impostare sopra menzionata tutta la proprietà e setKeyListener (null) tranne la proprietà modificabile.
Mubarak,

0

Usa i puntini di sospensione quando hai una larghezza fissa, quindi troncherà automaticamente il testo e mostrerà i puntini di sospensione alla fine,

non funzionerà se imposti layout_width come wrap_content & match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.