关于drawText文字居中的山寨做法
????? drawText画字符串是底端对齐的。所以要特别注意这点,不然画文字可能画到其它地方而误以为没有画出来。
?
????? 如果底端对齐的话:底端的Y坐标是:(行高-字体高度)/2+字体高度,但是字符串并不居中,经过测试如果:(行高-字体高度)/2+字体高度-6,就稍微居中了一点。
?
???? 以上的方法只是一个取巧的做法,网上也没有找到设置文字居中的方法。
?
???? 如果你有看到标准的做法,请共享。。。
?
1 楼 csj2017 2011-12-07 默认的应该不是底对齐吧!是baseLine对齐,离底端有段距离,所以按上面办法会有误差。加上那段距离应该就行了:FontMetrics fontMetrics = mPaint.getFontMetrics();
float fontTotalHeight = fontMetrics.bottom - fontMetrics.top;
float offY = fontTotalHeight / 2 - fontMetrics.bottom;
float newY = baseY + offY;
canvas.drawText(text, baseX, newY, paint);