最近在定制一个画文字的控件,想把文字画到指定的点。开始始终会有几个像素的偏差。
经过研究找到了几个在调用画布来画文字的时候需要注意的地方:
1.文字大小的Rectangular区域需要用 Paint的getTextBounds来获取;
如果用 mFontMetrics.top 和 mFontMetrics.bottom的绝对值相加获得的高度是包含的空白padding部分的。
2.对于mPaint.setTextAlign(Align.CENTER) 这种对齐方式:
文字(英文)的TOP点的计算:(textoutlineheight + textHeight )/2
3。对于中文需要往上面偏移bottom区域。