HarmonyOS鸿蒙Next中XML布局中的宽高VP单位如何理解

HarmonyOS鸿蒙Next中XML布局中的宽高VP单位如何理解 文档中介绍具体的数值:10(以像素为单位)、10vp(以屏幕相对像素为单位),请问下以屏幕相对像素为单位是如何理解,跟Android中的dp是同一个概念吗

13 回复

https://developer.harmonyos.com/cn/docs/design/des-guides/basic-0000001055539104

字体像素(font pixel) 大小默认情况下与 vp 相同,即默认情况下 1 fp = 1vp。如果用户在设置中选择了更大的字体,字体的实际显示大小就会在 vp 的基础上乘以 scale 系数,即 1 fp = 1 vp * scale。

更多关于HarmonyOS鸿蒙Next中XML布局中的宽高VP单位如何理解的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


1fp=1sp

1vp=1dp

*fp:中文全称字体像素,英文为Font pixels,字体像素大小默认情况下与vp相同,但如果开发者在设置中修改了字体显示大小,就会在vp的基础上乘以scale系数。

fp = font pixels 字体像素
px = pixel 像素
px是fp和vp的单位

上面说了vp和fp是一样的,除非你在设置中修改了字体显示大小。

但你为什么要在设置中修改呢,可能是为了适应不同的设备。

比如字体显示大小有: 极大 大 中 小 极小

比如你做的应用vp都是100

现在你有个手表,你把字体显示大小设置为极小,可能100vp就乘以0.6和60的fp差不多了。

现在你有个电视1080p的,你把字体显示大小设置为极大,可能100vp就乘以1.4,就和120的fp差不多了。

(数字都是我胡编的)

方便你有多个应用时,不使用系统的自适应像素算法,毕竟有时候机器算法没有人考虑的那么细致。就靠你自己手动调整。

这是我自己的理解,不一定对,看官方怎么回复。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

感谢解答。。。。。。

开发者你好,请参考地板回复哦。

字号规范

字体系统包含一系列等比例字号大小的集合,可以适应不同产品及内容的排版需求。每种类别的字号都有相应的使用场景,请使用推荐字号作为你的选择。

*fp:中文全称字体像素,英文为Font pixels,字体像素大小默认情况下与vp相同,但如果开发者在设置中修改了字体显示大小,就会在vp的基础上乘以scale系数。

智能穿戴

Scale Category ID Size-px size-fp Font-weight 典型使用场景

请问那fp,px,vp之间的转换是如何的,比如我100vp大概是多大

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒

同样有疑问,还有似乎字体的单位是fp,官方也没解释清楚三者的区别只知道不写后缀单位是默认px

在HarmonyOS鸿蒙Next中,XML布局中的宽高VP单位是虚拟像素(Virtual Pixel)的缩写。VP单位是一种与设备屏幕密度无关的尺寸单位,用于在不同分辨率和屏幕密度的设备上保持一致的布局效果。1VP等于屏幕物理像素的1/160英寸,这意味着在不同设备上,1VP所代表的物理尺寸是相同的。通过使用VP单位,开发者可以确保UI元素在不同设备上具有一致的视觉大小,而无需针对每种设备进行单独调整。

在HarmonyOS鸿蒙Next中,VP(Virtual Pixel)单位是一种基于屏幕密度的相对单位,用于实现布局的自适应。1VP等于屏幕物理像素的1/160,根据设备屏幕的PPI(每英寸像素数)自动调整,确保在不同设备上显示效果一致。例如,在PPI为320的屏幕上,1VP等于2物理像素。使用VP单位可以有效解决不同设备屏幕尺寸和分辨率的适配问题,提升用户体验。

回到顶部