有没有办法获得
TextView
中Android
的行距?我尝试找到 fontMetrics
的 Paint
中的 TextView
并这样做:
tv1.getPaint().getFontMetrics(pfm);
float fontTop = pfm.top;
float fontBottom = pfm.bottom;
System.out.println("Line Space >> " + (fontBottom - fontTop));
但在我更改
TextView
的字体大小之前,结果似乎是相同的。那么如何获得 TextView
的行距呢?
TextView
的行距为
textView.getPaint().getFontSpacing() * textView.getLineSpacingMultiplier() + textView.getLineSpacingExtra();
注意
getLineSpacingMultiplier()
和 getLineSpacingExtra()
方法自 API 16+ 起可用。
getLineSpacingExtra ()
;获取行距额外空间
tv1.getLineSpacingExtra ()
textView.setLineSpacing()
或在 xml 中,您可以使用 android:lineSpacingExtra
设置额外空间。
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();
}