measureTextSize的测量参数不清晰

问题1:baselineOffset为number时候的默认单位不清晰问题2:lineHeight为number时候的默认单位不清晰问题3:未详细介绍constraintWidth、maxLines、lineHeight彼此之间的关系,是否有互斥关系?是否有结合关系?他们最终到底应该怎么使用,文档均未描述,Demo也是很简单的示例代码,不足以看出来这几个参数的用法例如如下代码:

text: string = "123456789 123456789 123456789 123456789\n123456789 123456789 123456789 123456789\n123456789\n12345678" 
textSize: SizeOptions = measure.measureTextSize({ 
  textContent: this.text, 
  fontSize: '50px', 
  constraintWidth: px2vp(50), 
  maxLines: 2, 
  lineHeight: px2vp(100) 
})

测量出来的宽度为50px,高度为200px,但是很明显,这么一块区域不足以放得下前两行文字。

HarmonyOS
2024-06-03 22:59:33
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
胖头鱼圆滚滚

问题1:没有指定单位的,默认都是vp问题2:lineHeight为number的单位是vp问题3:constraintWidth是限制宽度、maxLines是最大行数、lineHeight是行高,并不互斥。共同构成被计算文本的显示区域,使用的方法参考代码

text: string = "123456789 123456789 123456789 123456789\n123456789 123456789 123456789 123456789\n123456789\n123456789" 
@State textWidth : SizeOptions = measure.measureTextSize({ 
  textContent: this.text, 
  fontSize: '50px', 
  constraintWidth: 50, 
  maxLines: 3, 
  lineHeight: 50 
})

上面的代码,constraintWidth和lineHeight默认的单位都是vp,输入结果:Text("The width of text: " + px2vp(this.textWidth.width as number))Text("The height of text: " + px2vp(this.textWidth.height as number))显示的结果宽为50,高为150,因为输出的单位是px,当把px转换为vp后,就能跟参数对上,宽度是constraintWidth的值50,高度是lineHeight*maxLines值为150。

分享
微博
QQ
微信
回复
2024-06-04 22:07:16
相关问题
使用icon图标不清晰有锯齿
430浏览 • 1回复 待解决
关于measureTextSize用法
691浏览 • 1回复 待解决
基于measure实现文本测量
570浏览 • 1回复 待解决
HarmonyOS如何测量Text组件宽度呢
330浏览 • 1回复 待解决
如何测量获取控件高宽
672浏览 • 1回复 待解决
如何保证振弦传感器测量精度?
3345浏览 • 0回复 待解决
51CTO不能把上传图片搞清晰一点吗?
3594浏览 • 2回复 待解决
播放器API-timeUpdate-时间单位不清
1663浏览 • 1回复 待解决
如何修改WebuserAgent参数
76浏览 • 1回复 待解决
PolarDB MySQL 参数有哪些?
2835浏览 • 1回复 待解决
如何使用NavigationnavPathStack参数
1079浏览 • 1回复 待解决
hilogprivate参数不起作用
5790浏览 • 1回复 待解决
taskPool参数支持Function类型吗
1620浏览 • 1回复 待解决
使用图片压缩API参数影响
323浏览 • 1回复 待解决
greenplumshared_buffers参数设置
4355浏览 • 1回复 待解决