
参数示意:
-
text,文字内容
-
x,文字从画布上开始绘制的x坐标(Canvas是一个原点在左上角的平面坐标系)
-
y,Baseline所在的y坐标,不少人已开始以为y是绘制文字区域的底部坐标,其实是不正确的,这是两个概念
-
paint,画笔,设置的文字的大小颜色等属性
-
了解了文字绘制的方法,我们现在就了解一下这个参数y(Baseline)的计算方法。
Baseline的概念
我们先看一行文字各区域的分布示意图

从上图来看,Baseline不难理解,它就是E和h的下边界线。我们还可以得出一个结论,文字的高度=Descent+Ascent。
然而,上面这个公式并不完全准确,我们再看一个图:

我们看到,如果文字的上方有一些特殊的符号,比如上图中的~或者是我们汉语拼音中的声调时,文字区域又会多出一部分Leading。
因此,完整的公式应该是
文字的高度=Descent+Ascent+Leading。
那么,为什么第一幅图中没有说明Leading的存在呢,原因是我们通常在绘制一行英文或者中文时,Leading的高度为0。我们看一个证据图,下图是在绘制英文文字时调试取得的数据。</

本文介绍了Android文字基线Baseline的计算方法,强调了Baseline与文字底部的区别,并通过示例解释了文字高度的完整公式。此外,文章还分享了作者的职场经历,包括在大厂的工作经验,以及如何准备面试和规划学习方向,提供了一份全面的Android学习资源和面试题集。
最低0.47元/天 解锁文章
5951

被折叠的 条评论
为什么被折叠?



