Android: TextView tronque et remplace automatiquement les 3 derniers caractères de la chaîne

Si une Ssortingng est plus longue que la TextView du TextView , elle passe automatiquement à la ligne suivante. Je peux éviter cela en utilisant android:singleLine (obsolète) ou en définissant android:inputType="text" . Ce dont j’ai besoin maintenant est quelque chose qui remplace les 3 derniers caractères de ma Ssortingng par ” “. Comme je n’utilise pas de police monospace, celle-ci sera toujours différente en fonction des lettres utilisées dans ma Ssortingng . Donc, je me demande quel est le meilleur moyen d’obtenir les 3 derniers caractères d’une chaîne dans un TextView et de les remplacer. Peut-être y a-t-il déjà quelque chose d’implémenté dans le framework Android, car cela doit être un problème commun.

Vous devriez pouvoir utiliser la propriété “ellipsize” d’une vue texte:

  

Vous devrez peut-être aussi appliquer des valeurs de gravité à la mise en page. J’ai parfois vu des vues “auto-stretching” sans elles.

J’ai trouvé un travail intéressant pour ce problème.

 maxLines=1 ellipsize=end scrollHorizontally=true 

L’astuce est cette dernière déclaration sur le défilement horizontal …. Il fonctionne au moins sur v2.2.

Par programme, vous pouvez utiliser:

 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);