2012-02-17 12 views
10

Metni birçok satıra gönderebilen bir TextView var. oluşturulduktan ve dinamik ayarlandıktan sonra, ben belirli bir hat üzerinde metin alınAndroid TextView ve metin satırı alma

  1. istiyorum ve
  2. bu hattın genişliğini ve yüksekliğini bilin.

Bunu nasıl yaparım? Ben 2. soruya doğru cevap anlamak

cevap

20

geçerli:

textView.getLineBounds (int line, Rect bounds) 

piksel genişliği abs(bounds.right - bounds.left) olmalıdır; ve yükseklik abs(bounds.bottom - bounds.top)

İlk soru biraz daha karmaşıktır, ama böyle bir şey gerekli büyü yapmalıyım:

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

'Dize text = textView.getText();' – Deqing

+0

çalışmıyor Sen Üzerinde bir 'toString()' i gerçekleştirmesi gerekecek. Ayrıca compler uyarılarını önlemek için 'textView.getText! = Null' olduğundan emin olmak için bir kontrol yapardım. – LukeWaggoner

+0

TextView mizanpajını almanın ve satır boyutu için sorgulamanız hakkında harika ipucu! tam olarak aradığım şey –