介绍
-
px 屏幕物理像素单位。
-
vp 屏幕密度相关像素,根据屏幕像素密度转换为屏幕物理像素,当数值不带单位时,默认单位vp。在实际宽度为1440物理像素的屏幕上,1vp约等于3px。
-
fp 字体像素,与vp类似适用屏幕密度变化,随系统字体大小设置变化。
-
lpx 视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过designWidth配置)的比值,designWidth默认值为720。当designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。
像素单位转换
| vp2px(value : number) : number | 将vp单位的数值转换为以px为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
|---|---|
| px2vp(value : number) : number | 将px单位的数值转换为以vp为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| fp2px(value : number) : number | 将fp单位的数值转换为以px为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| px2fp(value : number) : number | 将px单位的数值转换为以fp为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| lpx2px(value : number) : number | 将lpx单位的数值转换为以px为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
| px2lpx(value : number) : number | 将px单位的数值转换为以lpx为单位的数值。从API version 9开始,该接口支持在ArkTS卡片中使用。 |
vp与ps
在鸿蒙OS中,vp(虚拟像素)单位的计算公式为 vp=px/(DPI/160)。这里的px代表屏幕上的实际像素,而DPI(dots per inch,每英寸点数)代表每英寸所包含的像素点数。鸿蒙OS将标准DPI设定为160,这意味着当DPI为160时,1vp等于1px。如果设备的densityPixels(屏幕密度)和标准DPI的比例不是1:1,那么可以通过上述公式将px转换为vp,以适应不同屏幕密度的设备。
例如,如果设备的densityDPI为560,那么densityPixels为 560/160 = 3.5,那么1vp = 3.5px。在鸿蒙OS开发中,通过vp单位进行布局和设计可以更好地适应不同屏幕密度的设备,确保用户界面元素在不同设备上显示一致,从而提高用户体验和应用的兼容性。