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

Android获取字体高度跟设置行高(转)

热度:50   发布时间:2016-04-28 00:31:11.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); 


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