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

本文探讨了在自定义画文字控件时遇到的问题及解决方案,重点介绍了如何准确地将文字绘制到指定位置,包括使用getTextBounds获取文字大小的矩形区域、不同对齐方式下文字顶部坐标计算的方法以及中文字符的特殊处理。
2623

被折叠的 条评论
为什么被折叠?



