当前位置: 代码迷 >> Android >> Android获取字体高度跟设置行高
  详细解决方案

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

热度:16   发布时间:2016-05-01 15:56:39.0
Android获取字体高度和设置行高
  网络中好多资料介绍获取字体高度的方法如下:
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;}


个人更倾向于以下方式获取字体实际高度:
Math.ceil(fm.descent - fm.ascent)


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

有了字体高度信息,就可以添加行与行之间的空隙,调整行高。
个人实现方式如下:
        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);


实践验证这种方式对多种分辨率的屏幕的适应性较强。
以上是个人在实际的功能实现过程中的总结,水平较浅,若看官有不同的看法或者见解,望不惜赐教!
2010_10_10_17_02
  相关解决方案