UI布局默认是多少vp为基准,以达到不同机器自适应

UI布局默认是多少vp为基准,以达到不同机器自适应

HarmonyOS
2024-01-21 12:20:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zingoo

不管屏幕分辨率是多少,屏幕密度是多少,组件在视觉上呈现的效果是一致的。

vp具体计算公式为:vp= px/(DPI/160)

px就是屏幕真实物理像素值,densityPixels是屏幕密度,是和标准DPI的比例,常见取值有0.75,1.0,1.5,2.0,3.0等,在HarmonyOS中,标准DPI为160,以华为mate 40 pro为例,查询得到的densityPixels=3.5,densityDPI=560。densityDPI就是我们通常所说的系统屏幕密度,densityPixels就是屏幕密度和标准dpi(160)的比率。想要查看真机的dpi,可以调用屏幕属性中的display接口查询。

代码示例

import { display } from '@kit.ArkUI'; 
 
let displayClass: display.Display | null = null; 
try { 
  displayClass = display.getDefaultDisplaySync(); 
} catch (exception) { 
  console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception)); 
}

如果原型图没有提供vp单位的布局,开发者可以根据densityPixel把px转为vp,HarmonyOS也封装了现成的接口px2vp()和vp2px()供开发者直接调用。

参考链接

像素单位屏幕属性

分享
微博
QQ
微信
回复
2024-01-22 14:51:44
相关问题
Grid组件如何实现高度自适应
95浏览 • 1回复 待解决
自定义弹窗大小如何自适应内容
141浏览 • 1回复 待解决
InnoDB为什么需要自适应的Hash索引?
529浏览 • 1回复 待解决
鸿蒙harmony栅格化,适应不同屏幕宽
6208浏览 • 1回复 待解决
PolarDB的QPS最大是多少?
1283浏览 • 1回复 待解决
目前鸿蒙手机最新版本是多少
4106浏览 • 1回复 待解决
animator支持的最大播放时间是多少
94浏览 • 1回复 待解决
polardb最大连接数是多少 ?
1222浏览 • 1回复 待解决
JS ui支持vp、字体大小支持fp了吗?
4129浏览 • 1回复 待解决
【急】鸿蒙UI界面网格布局怎么设置?
14284浏览 • 4回复 待解决