HarmonyOS C++ NativeDrawing未提供对应Text组件的lineSpacing和lineHeight接口

文本测量需要支持 lineSpacing 和 lineHeight,

并未发现 C++ 层 NativeDrawing 模块有提供对应的设置属性

有 fontHeight 属性,但不是 lineHeight

没有 lineSpacing 属性,FontMetric 需要等测量之后才能获取

lineSpacing 和 lineHeight 对标 Text 组件上的属性

HarmonyOS
2024-12-27 15:41:11
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

接口不是一一对应的, lineHeight 和 lineSpaceing是组件开出去的接口,ArkUI经过计算还是要给我们设置 fontHegiht。

如果设置了fontHegiht ,fontHeight * fontSize 就等于我们这边的行高,所以如果想要设置具体的行高,那就计算好传入fontHeight 就好了。

简单说就是,字体本身没有 lineHeight 和 lineSpaceing接口。 设置好fontHegiht可以达到相同的效果。

尝试一下以下计算方法:

设置lineHeight未设置lineSpaceing: heightscale = lineHeight / fontsize

未设置lineHeight设置lineSpaceing: heightscale = 1+ lineSpaceing/ fontsize

设置lineHeight设置lineSpaceing:heightscale = lineHeight / fontsize + lineSpaceing/ fontsize

分享
微博
QQ
微信
回复
2024-12-27 18:27:35
相关问题
HarmonyOS C++ArkTS交互
227浏览 • 1回复 待解决
如何为 C++ 提供回调函数?
2620浏览 • 1回复 待解决
需要提供c++到js通信demo
723浏览 • 1回复 待解决
ArkTSC++之间交互
1674浏览 • 1回复 待解决
HarmonyOS ETSc++层通信
194浏览 • 1回复 待解决
HarmonyOS C++ VideoDecoder组件使用
286浏览 • 1回复 待解决
c++ 有vp2px 接口么?
2087浏览 • 1回复 待解决
HarmonyOS ArkTsC++实时通信
323浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
591浏览 • 1回复 待解决