如何获取TextView的行距?

问题描述 投票:0回答:3

有没有办法获得

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
的行距呢?

java android textview fontmetrics
3个回答
3
投票

TextView
的行距为

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

注意

getLineSpacingMultiplier()
getLineSpacingExtra()
方法自 API 16+ 起可用。


1
投票

getLineSpacingExtra ()
;获取行距额外空间

tv1.getLineSpacingExtra ()

textView.setLineSpacing()
或在 xml 中,您可以使用
android:lineSpacingExtra
设置额外空间。


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();
    }
© www.soinside.com 2019 - 2024. All rights reserved.