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

相关推荐
s***117029 分钟前
Mysql convert函数、convert用法、字符串转数字、字符串转日期、类型转换函数
android·数据库·mysql
n***26561 小时前
【MySQL】MVCC详解, 图文并茂简单易懂
android·数据库·mysql
程序猿陌名!1 小时前
Android-EDLA RK3576谷歌ATTESTION-KEY从申请到烧录以及验证谷歌认证标志全流程
android
安卓理事人1 小时前
安卓版本升级功能
android
s***35301 小时前
怎么下载安装yarn
android·前端·后端
z***94841 小时前
使用rustDesk搭建私有远程桌面
android·前端·后端
q***06292 小时前
【细如狗】记录一次使用MySQL的Binlog进行数据回滚的完整流程
android·数据库·mysql
0***86332 小时前
图文详述:MySQL的下载、安装、配置、使用
android·mysql·adb
9***44632 小时前
SQLyog安装配置(注册码)连接MySQL
android·mysql·adb
o***11142 小时前
【MySQL】MySQL库的操作
android·数据库·mysql