canvas.measureText()
用宿主文本渲染器批量测量字符串。它只返回度量,不执行换行、段落布局或富文本排版。
Syntax
const metrics = await host.canvas.measureText(canvasId, texts, style);
Parameters
| 参数 | 类型 | 说明 |
|---|---|---|
canvasId |
string |
确定默认字体和缩放上下文 |
texts |
string[] |
有界字符串数组 |
style |
TextStyle |
字号、对齐、文本方向和可选包内字体句柄 |
Return value
TextMetrics[],与 texts 一一对应。v0.1 的封闭结构是 { advance: f32 },表示非负的行内推进距离。align 不改变测量值;direction 参与塑形,但返回值始终是正向距离。
Examples
const font = await host.asset.loadFont('fonts/ui');
const [save, cancel] = await host.canvas.measureText(
'main',
['保存', '取消'],
{ font, size: 16, align: 'start', direction: 'ltr' },
);
layoutButtons([save.advance, cancel.advance]);
批量测量多个字符串,避免逐项跨越 guest/host 边界。
Errors
特有错误:denied、not-found、stale-handle、resource-denied、invalid-text、limit-exceeded。字体句柄类型不匹配或来自其他应用必须返回 stale-handle/resource-denied。
Requirements
- 能力:
host:canvas.measureText - 相关能力:创建自定义字体需要
host:asset.loadFont - 用户激活:不需要
- 信任档位:green