2012-06-08 13 views
7

Programowo tworzę StaticLayouts ze zmiennymi ciągami, a następnie stosuję każdy z nich do bitmapy, która jest następnie dodawana do płótna. SL wyświetla do dwóch linii przed odcięciem przez stałą wysokość zdefiniowaną w konstruktorze SL. Ale nie ma elips, które wskazywałyby, że tekst jest dłuższy niż to, co pokazano.Jak dodać elipsy do tekstu StaticLayout, gdy przekracza on wysokość?

Od http://developer.android.com/reference/android/text/StaticLayout.html widzę, że trzeci konstruktor ma argumentów skróconym końcu:

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) 

wiem Chciałbym TextUtils.TruncateAt.END, ale nie mogę dowiedzieć się, czego należy zdefiniowanie dla bufstart, bufend i ellipsizedWidth. Nie mogłem znaleźć żadnych dobrych przykładów tego konstruktora w szczególności, lub jeśli to nawet pomoże osiągnąć mój cel.

Odpowiedz

1

Nie 100% zaznajomieni z Androidem, ale miałem ten sam problem siebie i to co znalazłem:

  • bufstart - indeks pierwszego znaku (źródła) w celu włączenia w układ
  • bufend - indeks ostatniego znaku w celu włączenia w układ
  • outerwidth - Myślę szerokość wyimaginowanego pudełka zawierającego cały tekst (I właśnie sprawiło, że naprawdę bardzo szeroki)
  • ellipsizedwidth - szerokość Twoje pole do rysowania, tekst zostanie przycięty, jeśli wyjdzie ds ten

Przepraszamy za niezbyt pewną odpowiedź, ale nadal się uczę!

Powiązane problemy