Closed xuannfx closed 4 months ago
// 测量文本宽度
measureTextWidth(text, fontSize, fontWeight = '', fontFamily = canvas.fontFamily) {
const originalFont = canvas.ctx.font; // 保存原始字体样式
canvas.ctx.font = `${fontWeight} ${fontSize}px ${fontFamily}`; // 设置新的字体样式
const width = canvas.ctx.measureText(text).width; // 测量文本宽度
canvas.ctx.font = originalFont; // 恢复原始字体样式
return width;
},
// 画图
onAfterEnter () {
……
// 文字宽度
const nameWidth = this.measureTextWidth(item.name, name);
const typeWidth = this.measureTextWidth(item.type, type);
……
}
我的目标是测量名称的宽度,从而相应地设置名称标签背景的宽度,以使得标签能容纳对应名称,但是发现测出来的结果不符合预期,文本进行了换行,标签背景的宽度也不正确。另外,在不同dpr机型的上效果也不一致。请教一下是哪里出了问题。
dpr = 3 iPhone15 ProMax
dpr = 2 iPhoneXR