px2vp 在context.getLastWindow回调之前无效

系统提供的方法 px2vp , 在context.getLastWindow回调之前无效 。在context.getLastWindow回调之前调用,输入和输出一样 ,在context.getLastWindow回调之后调用 , 可以获取到正常值 。有没有什么方法可以在getLastWindow之前就能计算px2vp。

HarmonyOS
2024-10-09 10:38:37
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

px2vp不可用时,可以引入屏幕属性模块,获取当前系统屏幕密度,手动换算px和vp的值,计算公式为,vp= px/(DPI/160),参考如下代码,densityPixels是屏幕密度,是densityDPI和标准DPI的比例,常见取值有0.75,1.0,1.5,2.0,3.0等,在HarmonyOS中,标准DPI为160。

import { display } from '@kit.ArkUI';  
@Entry  
@Component  
struct Example {  
  aboutToAppear() {  
    let displayClass: display.Display | null = null;  
    try {  
      displayClass = display.getDefaultDisplaySync();  
      let test1 = px2vp(20)  
      let test2 = 20/displayClass.densityPixels //实际效果等同于px2vp(20)  
      console.info('test1='+test1+' test2='+test2)  
    } catch (exception) {  
      console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception));  
    }  
  }  
  build() {  
    Column() {  
    }.width('100%')  
  }  
}
分享
微博
QQ
微信
回复
2024-10-09 17:58:37
相关问题
HarmonyOS px2vp模拟器上无法正确转换
1704浏览 • 1回复 待解决
c++ 有vp2px 的接口么?
3018浏览 • 1回复 待解决
HarmonyOS pxvp的转换
1047浏览 • 1回复 待解决
HarmonyOS pxvp如何转换
1038浏览 • 1回复 待解决
HarmonyOS 此方法的值如何转成vp
766浏览 • 1回复 待解决
HarmonyOS pxvp 单位转换问题
1065浏览 • 1回复 待解决
harmonyos开发中vppx如何互换?
2865浏览 • 2回复 待解决
pxvp之间如何相互转换
6929浏览 • 1回复 待解决
HarmonyOS 组件对应的单位(pxvp
1439浏览 • 1回复 待解决
vp、fp、px的区别,有谁知道?
5030浏览 • 1回复 待解决
HarmonyOS flutterohos如何添加系统
1078浏览 • 1回复 待解决
HarmonyOS 事件
1282浏览 • 1回复 待解决
接口内定义匿名的语法
2710浏览 • 1回复 待解决
C++时,如何阻塞TS主线程?
1720浏览 • 1回复 待解决