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