Android FontMetrics 学习笔记
今天学习自定义控件时, 用到Canvas 绘制文本,其中使用了FontMetrics对象,计算位置的坐标 FontMetrics源码如下:
/**
* 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().
*/
public static class FontMetrics {
/**
* The maximum distance above the baseline for the tallest glyph in
* the font at a given text size.
*/
public float top;
/**
* The recommended distance above the baseline for singled spaced text.
*/
public float ascent;
/**
* The recommended distance below the baseline for singled spaced text.
*/
public float descent;
/**
* The maximum distance below the baseline for the lowest glyph in
* the font at a given text size.
*/
public float bottom;
/**
* The recommended additional space to add between lines of text.
*/
public float leading;
}
它的各基准线可以参考在网上找到的图片:
其中绘制时 FontMetrics 是以 baseline 为基准的 , 假设基准点y轴坐标为0, 那么 baseline 以上为负值 , 以下为正值。