android drawText 绘制 数字 注意点

先上一张图

Leading 是对那些顶部有特殊符号的才有意义 比如 拼音声调 其他的默认是0

对于数字来说 是没有这个特殊符号的 所以数字的Leading 就是 0

对于数字来说 都是这种样式

底部的Descent 是空白的

less 复制代码
canvas.drawText(9+"g",x,y,paint);

绘制数字 指定的 y 是baseLine的位置

所以想绘制数字到某个坐标 比如文字左上角是 a,b 那么 y应该设置为 数字的高度 + b ,x 设置为a

还有一个小问题 比如想让 数字以横坐标 x 为中心点。计算数字的起始点 一般是

js 复制代码
x - 数字宽度 / 2

这个数字宽度有两种算法

js 复制代码
float measureWith = paint.measureText(""+index);
或者 

Rect drawTextRect = new Rect();
paint.getTextBounds(index+"", 0, (index+"").length(), drawTextRect);

两种都没有问题 区别就是 measureText 获取的值大一点 肯能考虑了字形啥的 所以 用measureText 看起来也更居中一点。

相关推荐
Wonderful U10 分钟前
Python+Django实战|企业办公用品申领管理系统:物资入库、库存预警、申领审批、归还登记、损耗统计、供应商对账
android·python·django
plainGeekDev11 分钟前
网络状态监听 → ConnectivityManager + Flow
android·java·kotlin
楠目15 分钟前
CVE-2013-4547 Nginx URI解析漏洞利用总结
android
Coffeeee41 分钟前
不能用公司的打包机,AI帮我实现了一套比打包机更好用的Android包构建/分发流程
android·人工智能·ai编程
多彩电脑1 小时前
向AIDE(安卓设备上的Android Studio)导入aar库
android·java·开发语言·androidx
恋猫de小郭1 小时前
解析华为 DevEco Code 和小米 MiMo Code,都基于 OpenCode ,有什么区别?
android·前端·ios
2501_932750262 小时前
Android 控件与布局全面解析
android
问心无愧05132 小时前
ctfshow web入门114
android·前端·笔记
黄林晴2 小时前
离谱!Android 17藏神仙功能,手机录屏叠加真人出镜
android
朱涛的自习室2 小时前
Harness 还没学会,又来了个 Loop Engineering ?
android·人工智能·github