2014-03-07 43 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(); 
    }