获取字体宽高!

怎么获取字体宽高? 汉字“大”和数字“1”宽度肯定是不一样的!恼火!

从引擎源码和CanvasContext2D的api得出有计算文字的方法

let canvas = document.createElement("canvas");
let ctx = canvas.getContext('2d');
ctx.font = `字大小px 字型`;
let size = ctx.measureText(txt);
2赞

大神感谢,有你这个RichText 用来做游戏聊天框完美解决问题了!

刚入坑cocos 看来 HTML还得看! :sweat_smile:

在原生app上,这些方法适用吗?

webgl的api + 引擎的

不适用。。。

1赞

只能在h5用, 原生你要看看打包出来那些C++代码, 估计也有类似的处理或者chatgpt找找opengl计算文字大小

原生可以这样用你要用的字体生成 0-9 数字 并记录size同理处理大小写字母和汉字

感谢回复。