Android: Textview automatisch gestutzt und zuletzt 3 Zeichen von String ersetzen
Frage
Wenn ein String
länger ist als die Breite des TextView
es wickelt automatisch auf die nächste Zeile. Ich kann dies vermeiden, indem android:singleLine
mit (veraltet) oder durch android:inputType="text"
Einstellung. Was ich jetzt brauchen, ist etwas, das die letzten drei Zeichen meiner String
ersetzt mit „ ... “. Da ich eine nichtproportionale Schrift nicht verwendet, wird dies immer unterschiedlich sein, abhängig von den Buchstaben in meinem String
verwendet. So frage ich mich, was ist der beste Weg, um die letzten 3 Zeichen eines String in einem TextView
zu erhalten und sie zu ersetzen. Vielleicht gibt es schon im Android Framework implementiert etwas, da dies ein weit verbreitetes Problem sein muss.
Lösung
Es sollte möglich sein, die „ellipsize“ Eigenschaft einer Textansicht zu verwenden:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
Sie müssen unter Umständen auch zu Schwerewerte, um das Layout gelten; Ich habe manchmal „Auto-Strecken“ Ansichten ohne sie gesehen.
Andere Tipps
Haben Sie eine interessante Arbeit-a-Runde für dieses Problem.
maxLines=1
ellipsize=end
scrollHorizontally=true
Der Trick ist, dass letzte Aussage über die horizontale Scrollen .... check it out. Es zumindest funktioniert auf v2.2.
Programmatisch können Sie:
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);