本文内容部分来自网络
字体的几个参数 ,以Android API文档定义为准,见下图
实例
利用paint或者textpaint获取
FontMetrics对象
<span style="white-space:pre"> </span>float baseX = 0;
float baseY = 100;
float topY = baseY + fontMetrics.top;
float ascentY = baseY + fontMetrics.ascent;
float descentY = baseY + fontMetrics.descent;
float bottomY = baseY + fontMetrics.bottom;
float leading = baseY + fontMetrics.leading;
以下为我个人方法
<span style="white-space:pre"> <span style="color: rgb(85, 85, 85); font-family: 宋体, 'Arial Narrow', arial, serif; font-size: 14px; line-height: 28px;">FontMetrics </span></span>f = paint.getFontMetrics();
paint.setTextSize(20);
textHeight =Math.abs( f.ascent + f.descent + f.leading);// 获取文本高度(有时为负值,这里取正值)
textWidth = paint.measureText(drawtext);<span style="font-family: 宋体, 'Arial Narrow', arial, serif;">// 获取文本宽度</span>
这样在自定义view或者surfaceView中可以设置文本水平居中和垂直居中了。