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

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

2014-03-27 19:22 337 查看
  网络中好多资料介绍获取字体高度的方法如下:

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);

实践验证这种方式对多种分辨率的屏幕的适应性较强。

以上是个人在实际的功能实现过程中的总结,水平较浅,若看官有不同的看法或者见解,望不惜赐教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐