用途:为 Even Realities G2 智能眼镜做像素级文本测量,预测与固件 LVGL 渲染引擎一致的布局尺寸,用于在创建 UI 容器前确定文本宽高、行数与截断。
主要能力:getTextWidth 返回单行像素宽度(含字距、不换行);measureTextWrap 按 maxWidth 做单词换行,返回 lineCount、height(行数×27)与每行 lineWidths;pxTruncate 在像素预算内截断并追加“...”,已放得下则原样返回,使用二分查找并正确处理 emoji/代理对,仅支持单行;getAdvW 返回码点原始步进宽度(1/16px,无字距、不舍入),用于调试或自定义测量。
显示常量:屏幕 576×288 像素,行高固定 27px,列表项高固定 40px,列表项左右内边距各 12px。
安装:npm install @evenrealities/pretext。所有函数从该包导出。
用法要点:maxWidth 应为内容内宽,调用前先减去内边距与边框;返回的 height 是纯文本高度。容器有 paddingLength 或 borderWidth 时,SDK 的 LVGL 渲染器会从可用文本区中扣除,每边内缩为 paddingLength + borderWidth,内宽=宽-2×内缩,内高=高-2×内缩,最大行数=floor(内高/27)。若按容器全宽测量会导致内容溢出并出现滚动条。常见做法:按内宽测量后,容器高=文本高+2×内边距,紧致宽度可用最大行宽+2×内边距;多行截断需逐行处理。
限制:固件字体中不存在的字符结果可能不准,因为固件与本库对缺失字形的处理可能不同。其余收费、平台与效果信息暂未提供。