2014-03-07 33 views
2

有沒有什麼辦法可以在Android中獲得TextView的行距?我試圖找到TextViewPaintfontMetrics和這樣做:如何獲取TextView的行距?

tv1.getPaint().getFontMetrics(pfm); 
float fontTop = pfm.top; 
float fontBottom = pfm.bottom; 
System.out.println("Line Space >> " + (fontBottom - fontTop)); 

但似乎結果是一樣的,直到我改變TextView的字體大小。那麼如何獲得TextView的行距?

回答

0

getLineSpacingExtra();獲取行間距額外的空間

tv1.getLineSpacingExtra() 

textView.setLineSpacing()或XML,您可以使用android:lineSpacingExtra用於設置額外的空間。

1

TextView Linespacing是

textView.getPaint().getFontSpacing() * textView.getLineSpacingMultiplier() + textView.getLineSpacingExtra(); 

getLineSpacingMultiplier()getLineSpacingExtra()方法,因爲API 16+可用。

0
try { 
     Field mSpacingAddField = TextView.class.getDeclaredField("mSpacingAdd"); 
     Field mSpacingMultField = TextView.class.getDeclaredField("mSpacingMult"); 
     mSpacingAddField.setAccessible(true); 
     mSpacingMultField.setAccessible(true); 
     mSpacingAdd = mSpacingAddField.getFloat(textView); 
     mSpacingMult = mSpacingMultField.getFloat(textView); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    }