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 看起来也更居中一点。

相关推荐
爬虫程序猿5 小时前
利用爬虫按关键字搜索淘宝商品实战指南
android·爬虫
顾北川_野5 小时前
Android ttyS2无法打开该如何配置 + ttyS0和ttyS1可以
android·fpga开发
wzj_what_why_how8 小时前
Android网络层架构:统一错误处理的问题分析到解决方案与设计实现
android·架构
千里马学框架9 小时前
User手机上如何抓取界面的布局uiautomatorviewer
android·智能手机·aosp·uiautomator·布局抓取·user版本
阿巴~阿巴~9 小时前
操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
android·华为·harmonyos
hsx66610 小时前
使用 MaterialShapeDrawable 自定义各种形状的 View
android
用户20187928316710 小时前
滑动城堡的奇妙管家 ——ViewPager故事
android
用户20187928316710 小时前
📜 童话:魔法卷轴与 ScrollView 的奥秘
android
??? Meggie12 小时前
【SQL】使用UPDATE修改表字段的时候,遇到1054 或者1064的问题怎么办?
android·数据库·sql
用户20187928316712 小时前
代码共享法宝之maven-publish
android