Android:FontMetrics详解

FontMetrics在API中解释如下:

Class that describes the various metrics for a font at a given text size. Remember, Y values increase going down, so those values will be positive, and values that measure distances going up will be negative. This class is returned by getFontMetrics().

向下为正,向上为负,以baseline为基准

下面通过两幅图直观感受一下:(第一幅图讲解哪些参数究竟指的哪部分,第二幅图演示了对应的大致的值)

Android:FontMetrics详解_第1张图片


所以,要想让单元格中的文字居中,需要如下代码:

float y = height/2-(fMetrics.ascent+fMetrics.descent)/2;

height是指单元格的高度。中间为什么是减号?是因为(fMetrics.ascent+fMetrics.descent)/2是负,再减一下就是加。这样就可以把文本放在中间。(Android的Y轴是向下的,height/2在红线上面,再加上红线到base的距离,就差不多在中间。如果误认为Y轴向上,是解释不通的

你可能感兴趣的:(android,FontMetrics)