2012-02-17 12 views
10

Mam TextView, którego tekst może biec do wielu wierszy. Raz został stworzony i ustawić dynamicznie, chciałbymAndroid TextView i uzyskiwanie linii tekstu

  1. Get tekst na danej linii, a
  2. wiedzieć szerokość i wysokość tej linii.

Jak to zrobić?

Odpowiedz

20

Jeśli dobrze rozumiem odpowiedź na pytanie 2 brzmi:

textView.getLineBounds (int line, Rect bounds) 

szerokość w pikselach powinien być abs(bounds.right - bounds.left); a wysokość jest abs(bounds.bottom - bounds.top)

Twoje pierwsze pytanie jest nieco bardziej skomplikowane, ale coś takiego powinien zrobić wymaganą Magic:

Layout layout = textView.getLayout(); 
String text = textView.getText().toString(); 
int start=0; 
int end; 
for (int i=0; i<textView.getLineCount(); i++) { 
    end = layout.getLineEnd(i); 
    line[i] = text.substring(start,end); 
    start = end; 
} 
+1

'tekst String = textView.getText();' nie działa – Deqing

+0

Ty Będziesz musiał wykonać na nim 'toString()'. Zrobiłbym również czek, aby upewnić się, że 'textView.getText! = Null' by uniknąć ostrzeżeń kompilatora. – LukeWaggoner

+0

Świetna wskazówka, aby uzyskać układ TextView i zapytać go o rozmiar linii! dokładnie to, czego szukałem –

Powiązane problemy