您的位置:首页 > 移动开发 > Android开发

Android获取字体高度和设置行高

2013-05-09 08:58 169 查看
http://apps.hi.baidu.com/share/detail/21391920

网络中好多资料介绍获取字体高度的方法如下:

Java代码

public int getFontHeight(float fontSize)

{

Paint paint = new Paint();

paint.setTextSize(fontSize);

FontMetrics fm = paint.getFontMetrics();

return (int) Math.ceil(fm.descent
- fm.top) + 2;

}

个人更倾向于以下方式获取字体实际高度:

Java代码

Math.ceil(fm.descent - fm.ascent)

通过实际的截图对文字高度的确定,后者更准确一些。

有了字体高度信息,就可以添加行与行之间的空隙,调整行高。

个人实现方式如下:

Java代码

paint.setTextSize(fFontWidth);

FontMetrics fm = paint.getFontMetrics();

fFontHeight = (float)Math.ceil(fm.descent - fm.ascent);

if(fFontHeight > fLineHeight)

{

fMulValue = fLineHeight / fFontHeight;

fAddValue = -1;

}

else

{

fMulValue = 1;

fAddValue = fLineHeight - fFontHeight;

}

textViewLeft.setTextSize(fFontWidth);

textViewLeft.setLineSpacing(fAddValue, fMulValue);

实践验证这种方式对多种分辨率的屏幕的适应性较强。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: