- 理解自定义View中的文字, Text. 看下面这个图:
如果要实现一串文字居中显示在屏幕的正中心,只要确定绘制的BaseLine的坐标即可, x坐标比较简单我们略过,看y坐标
baseY = (int) ((canvas.getHeight() / 2) +
((Math.abs(textPaint.ascent()-Math.abs(textPaint.descent()))) / 2));
如果Y坐标是屏幕的高度一半,会发现文字是偏向于屏幕上方的,所以我们需要往下移动,这个移动的距离可以这样理解:
因为我们需要下移,Android屏幕下方对应Y轴正方向,所以必定是加上一段距离,那么到底是加多少呢? 如果没有Descent这段距离,那肯定是下移Ascent的一半,但是现在有了Descent,如果还这样移动,字体就会偏下,所以下移距离应该是Ascent-Descent的距离的一半。