android draw text at canvas

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在定制一个画文字的控件,想把文字画到指定的点。开始始终会有几个像素的偏差。

经过研究找到了几个在调用画布来画文字的时候需要注意的地方:

1.文字大小的Rectangular区域需要用 Paint的getTextBounds来获取;

如果用 mFontMetrics.top 和 mFontMetrics.bottom的绝对值相加获得的高度是包含的空白padding部分的。

 

2.对于mPaint.setTextAlign(Align.CENTER) 这种对齐方式:

文字(英文)的TOP点的计算:(textoutlineheight + textHeight )/2

3。对于中文需要往上面偏移bottom区域。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值