Que signifie ellipsize dans Android?

199

J'ai ajouté un EditTextà ma mise en page, ajouté un indice et l' ai centré horizontalement.

Lors de l'exécution de l'application, l'indice était invisible. J'ai trouvé que je devais ellipsizevaloriser le TextViewêtre 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" />

Dans la documentation Android, je lis:

S'il est défini, les mots qui sont plus longs que la vue large sont
ellipsés au lieu d'être cassés au milieu.

Le problème est que cela ellipsizene se trouve pas dans le dictionnaire. Quelqu'un peut-il m'expliquer quels avantages nous pouvons gagner par ellipsizeattribut? Et quelle est la différence entre start, end, middle?

Hamzeh Soboh
la source
veuillez renvoyer ma réponse mise à jour.
Rinkal Bhanderi
2
btw: le mot réel "ellipsé" est composé. Cela s'appelle "verbaliser un nom" et est un moyen courant de former un jargon informatique. Le nom est "ellipse" que je suppose que vous connaissez, et il est transformé en un verbe en ajoutant la fin "-ize" qui signifie "faire en", donc vous pouvez déduire que "ellipsize" est "ajouter une ellipse à quelque chose".
Michael Edenfield
4
Ancienne faute d'orthographe, jamais corrigée. Le terme devrait en fait être «points de suspension». L'ellipse est une courbe sur un plan entourant deux points focaux de telle sorte qu'une ligne droite tracée d'un des points focaux à n'importe quel point de la courbe. Les points de suspension sont les trois points.
radley
La documentation d'ellipseSize n'a toujours pas de description.
Talha
coupe encore les mots en deux pour moi. j'ai besoin de mots pour rester en un seul morceau. bon sang
filthy_wizard

Réponses:

388

Vous pouvez trouver la documentation ici .

En fonction de vos besoins, vous pouvez essayer selon l'option.

à ellipsize , un néologisme, des moyens de texte Raccourcir l' aide d' un des points de suspension , soit trois points ...ou plus communément ligatures , se tenir pour les bits omis.

Dire que la valeur du texte de la valeur pf d'origine est aaabbbccc et son ajustement à l'intérieur de la vue

startLa sortie de sera: ... bccc

endLa sortie de sera: aaab ...

middleLa sortie sera: aa ... cc

marqueeLa sortie de sera: aaabbbccc glissement automatique de droite à gauche

Rinkal Bhanderi
la source
Merci. Mais je l'ai déjà lu. Il utilise le mot «ellipsé» où je recherche sa signification. Le mot ne peut pas être utilisé dans sa définition !! Une autre explication s'il vous plaît?
Hamzeh Soboh
60

d'après mon expérience, Ellipsis ne fonctionne que si deux attributs en dessous sont définis.

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

pour la largeur de textview, wrap_content ou match_parent devraient tous deux être bons.

Zéphyr
la source
2
En fait, android:singleLineétait obsolète depuis le niveau 3 de l'API, alors utilisez plutôt android:maxLines. Veuillez noter:> si singleLine et inputType sont fournis, les drapeaux inputType remplaceront la valeur de singleLine. Découvrez les documents sur R.attr.html # singleLine
Filipe Bezerra de Sousa
1
@AlbertoGaona J'ai remarqué que cela ne fonctionne pas si android: ellipsize = "start" et android: maxLines = "2" (ou plus). Je n'ai pas vu de points au début même si le texte était trop long.
ka3ak
17

How to Add an ellipsis in a TextView

android: ellipsize ajouté dans le niveau 1 de l'API .Une ellipse est de trois périodes consécutives. (...).

Dans votre Xml

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

À ce stade, les points de suspension ne s'afficheront pas encore car TextView est configuré pour s'étendre automatiquement par défaut lors de la saisie d'un nouveau texte. Vous devrez limiter le TextView d'une manière ou d'une autre. Pour ce faire, vous pouvez utiliser soit ajouter à votre TextView a scrollHorizontally, minLines, or maxLinespour afficher les points de suspension.

Pour faire l'ellipse:

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

Et

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

Et

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

Et

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

Remarque:

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

Pour plus de détails, vous pouvez visiter ici

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

IntelliJ Amiya
la source
10

Une ellipse représente trois périodes consécutives ...

TextView utilise des points de suspension lorsqu'il ne peut pas se développer pour afficher tout son texte. L'attribut ellipsizeddéfinit la position des trois points si cela est nécessaire.

Sam
la source
5

Texte:

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

Supposons que ci-dessus soit votre texte et si vous utilisez ellipsizel' startattribut de, il apparaîtra comme ceci

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

avec endattribut

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

voici un exemple sur la façon dont ellipsize fonctionne sans utiliser obsolète android:singleLine="true"dans 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" />

rappelez-vous si vous avez un texte censé être sur une seule ligne, puis changez les maxLines à 1.

MojAmiri
la source
Merci cette solution a résolu mon problème. La clé est android:layout_width="0dp"au lieu de android:layout_width="wrap_content". Notez que cela s'applique car j'utilise un ConstraintLayout. Également discuté ici stackoverflow.com/a/48149405/2848676
Michael Osofsky
1

Remarque: votre texte doit être plus grand que la zone de conteneur pour les éléments suivants à marquer:

 android:ellipsize="marquee"    
ksu
la source
1

Définissez cette propriété pour modifier le texte. Elipsize fonctionne avec désactiver le texte d'édition

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

ou setKeyListener (null);

Moubarak
la source
set above mentionne toutes les propriétés et setKeyListener (null) à l'exception des propriétés modifiables.
Mubarak
0

Utilisez des points de suspension lorsque vous avez une largeur fixe, puis il tronquera automatiquement le texte et affichera les points de suspension à la fin,

cela ne fonctionnera pas si vous définissez layout_width comme wrap_content & match_parent.

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