Android: TextView tronca e sostituire ultimi 3 carattere della stringa automaticamente
Domanda
Se un String
è più lungo della larghezza del TextView
si avvolge automaticamente sulla riga successiva. Posso evitare questo utilizzando android:singleLine
(deprecato) o impostando android:inputType="text"
. Quello che ho bisogno ora è una cosa che sostituisce gli ultimi 3 personaggi del mio String
con " ... ". Dal momento che non sto usando un font a spaziatura fissa questo sarà sempre diversa a seconda delle lettere utilizzate nel mio String
. Quindi mi chiedo qual è il modo migliore per ottenere gli ultimi 3 caratteri di una stringa in un TextView
e sostituirli. Forse c'è qualcosa di già attuato nel quadro Android, dal momento che questo deve essere un problema comune.
Soluzione
Si dovrebbe essere in grado di utilizzare la proprietà "ellipsize" di una visualizzazione di testo:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_mytext"
android:ellipsize="end"
android:maxLines="1"
/>
Potrebbe anche essere necessario per applicare i valori di gravità al layout troppo; A volte ho visto "auto-stretching" vista senza di loro.
Altri suggerimenti
Trovato un interessante lavoro-a-rotonda per questo problema.
maxLines=1
ellipsize=end
scrollHorizontally=true
Il trucco è che l'ultima dichiarazione circa lo scorrimento orizzontale .... check it out. E 'di almeno Funziona su v2.2.
a livello di programmazione, è possibile utilizzare:
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);