`

关于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);

相关推荐

Global site tag (gtag.js) - Google Analytics