2012-06-08 4 views
7

Sto creando a livello di codice StaticLayouts con stringhe variabili e quindi applicando ciascuna a una bitmap che viene quindi aggiunta a una tela. La SL visualizza fino a due righe prima di essere troncata dall'altezza fissa che ho definito nel costruttore SL. Ma non ci sono ellissi per indicare che il testo è più lungo di quello mostrato.Come aggiungere ellissi al testo StaticLayout quando supera la sua altezza?

Da http://developer.android.com/reference/android/text/StaticLayout.html vedo che il terzo costruttore ha argomenti troncamento alla fine:

StaticLayout(CharSequence source, int bufstart, int bufend, TextPaint paint, int outerwidth, Layout.Alignment align, float spacingmult, float spacingadd, boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth) 

So che vorrei TextUtils.TruncateAt.END, ma io non riesco a capire che cosa dovrei determinante per bufstart, bufend e ellipsizedWidth. Non sono riuscito a trovare alcun buon esempio di questo costruttore in particolare, o se mi aiuterà anche a raggiungere il mio obiettivo.

risposta

1

non al 100% familiarità con Android, ma hanno avuto lo stesso problema me stesso e questo è quello che ho trovato:

  • bufstart - indice del primo carattere (in origine) da includere nel layout
  • bufend - indice dell'ultimo carattere da includere nel layout
  • outerWidth - Penso che la larghezza della casella immaginaria che contiene tutto il testo (che ho appena fatto davvero davvero ampia)
  • ellipsizedwidth - la larghezza di la tua casella in cui il tuo disegno verrà ritagliato, il testo verrà tagliato se eccede Questo è

Ci scusiamo per una risposta non così sicura, ma sto ancora imparando!

Problemi correlati