Android: Quelque chose de mieux que Android: ellipsize = “end” pour append “…” aux longues chaînes tronquées?

Cette propriété fait

“mot court et très long”

à

“court et”

. Mais je veux avoir du smth. comme

“court et très-lon …”

En ce moment, je tronque la chaîne en code Java. Cependant, c’est en fonction du nombre de caractères et non de la longueur réelle du lien. Donc, le résultat n’est pas très beau.

Ssortingng title; if(model.getOrganization().length() > 19) { title = model.getText().subssortingng(0, 15).sortingm() + "…"; } else { title = model.getText(); } ((TextView) findViewById(R.id.TextViewTitle)).setText(title); 

Mettre à jour

Juste remarqué, cette propriété ajoute effectivement “…” dans quelques cas. Mais pas dans tous:

12345678901234567890 devient “12345678901234 …”

cependant,

“1234567890 1234567890” devient “1234567890” et non “1234567890 123 …”

Mise à jour 2

Maintenant, ça devient vraiment génial! Je viens de définir singleLine = true et de supprimer maxLine (le bogue apparaît avec et sans atsortingbut ellipsize) …

texte alt

Il s’agit d’une capture d’écran de Motorola Milestone avec mise à jour Android 2.1. Même chose avec HTC Desire avec la même version Android

Mise à jour 3

Maintenant, j’utilise Android: ellipsize = “marquee”. Cela semble être le seul cadre qui fonctionne correctement. Ça bouge aussi, quand on se concentre. Je le vois aussi dans beaucoup d’autres applications. Je devine sa pratique courante.

    Si c’est pour une seule ligne, essayez ceci:

     android:ellipsize="end" android:maxLines="1" android:scrollHorizontally="true" android:singleLine="true" 

    Cela a fonctionné pour moi.

    J’ai eu un problème similaire et la définition de cette propriété sur TextView m’a aidé à:

     android:singleLine="true" 

    Aussi, j’utilisais un RelativeLayout, donc je limitais l’espace que le TextView pouvait prendre en définissant une marge de gauche sur un bouton à droite de TextView, de sorte que le texte ne puisse pas s’étendre davantage et soit forcé de tronquer son contenu.

    Peut-être que ce n’est pas la solution à votre problème, mais cela m’a aidé dans une situation similaire.

    Voir ma mise à jour 3. La solution de contournement consistait à utiliser “marquee”. J’ai vu beaucoup d’applications le faire en ce moment. Maintenant, avec les nouvelles versions d’Android, cette fonctionnalité est probablement fixée et fonctionnera comme prévu. (ma conjecture)

    Peut-être pourriez-vous examiner le fonctionnement de la classe privée Ellipsizer utilisée par le système d’exploitation et la modifier pour votre application?

    Edit: Voici un lien de travail – http://androidxref.com/5.1.0_r1/xref/frameworks/base/core/java/android/text/Layout.java#1830