Android绘制文本基本概念 top, bottom, ascent, descent, baseline
baseLine:一行文字的底线。
Ascent: 字符顶部到baseLine的距离。
Descent: 字符底部到baseLine的距离。
Leading: 字符行间距。
基线(baeseline),坡顶(ascenter),坡底(descenter)上坡度(ascent),下坡度(descent)行间距(leading):坡底到下一行坡顶的距离字体的高度=上坡度+下坡度+行间距ascent是指从一个字的基线(baseline)到最顶部的距离,descent是指一个字的基线到最底部的距离注意, ascent和top都是负数
注意点一:
图二正方向未文字的显示范围,X轴是baseline ,x轴向右变大,y轴向下变大。所以 Metrics.top 是负数,Metrics.bottom是正数。
注意点二:
画笔 Paint 只要一设置完 字号 setTextSize 就可以通过 getFontMetrics 获取到 FontMetrics
注意点三:
画布上写字的时候一般 用canvas.drawText 方法, 而这个方法写字的起点是图二的 原点位置,也就是图二的(0,0) 位置。所以如果想把字写在画布上的当前位置的时候一般需要
canvas.drawText(“test”, 0, -Metrics.top, Paint); 向下偏移top距离那么,写出来的字的顶部就会在当前画布位置 ,否则的话就是字的baseline的位置会是当前画布位置。