Android: TextView tronca e sostituire ultimi 3 carattere della stringa automaticamente

StackOverflow https://stackoverflow.com/questions/1666736

  •  13-09-2019
  •  | 
  •  

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.

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top