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

相关推荐
技术liul1 小时前
使用安卓平板,通过USB数据线(而不是Wi-Fi)来控制电脑(版本1)
android·stm32·电脑
_祝你今天愉快3 小时前
Android FrameWork - 开机启动 & Init 进程 初探
android
2501_916007473 小时前
iOS App 上架实战 从内测到应用商店发布的全周期流程解析
android·ios·小程序·https·uni-app·iphone·webview
TimeFine3 小时前
Android 邮件发送日志
android
杨过过儿4 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库
Wgllss4 小时前
Kotlin 享元设计模式详解 和对象池及在内存优化中的几种案例和应用场景
android·架构·android jetpack
zzywxc7876 小时前
AI 行业应用:金融、医疗、教育、制造业领域的落地案例与技术实现
android·前端·人工智能·chrome·金融·rxjava
sTone873756 小时前
android studio之外使用NDK编译生成android指定架构的动态库
android·c++
胖虎17 小时前
Android 入门到实战(三):ViewPager及ViewPager2多页面布局
android·viewpager·viewpager2
风往哪边走9 小时前
Media3在线本地视频播放器
android