界页UI相关的研发中,经常性使用vp2px或px2vp用于计算单位的转换。参考 developer.huawei.com/consumer/cn… 中的内容。
- vp2px、px2vp是ArkUI的全局接口,该接口已经标为废弃,不推荐使用。UI实例不明确时,使用默认屏幕的虚拟像素比进行转换,可能会存在转换后结果与预期不一致的情况。
- UIContext的vp2px、px2vp为推荐的替代接口,能保证调用时UI实例已经创建,并返回正确的结果。
UIContext实例调用vp2px,px2vp等接口的方式,在API 12版本开始生效,如果是纯血鸿蒙的App,可以直接使用下面的方法进行API的升级。
- 在UIAbility中调用:在onWindowStageCreate的方法里,执行windowStage.loadContent之后,可以通过windowStage.getMainWindowSync().getUIContext();获取UIContext实例,之后再使用UIContext实例调用vp2px或px2vp。
- 在自定义组件中调用:通过this.getUIContext(); 获取UIContext实例,之后再使用UIContext实例调用vp2px或px2vp。
- 在其它模块中调用:根据模块的调用关系,确定使用的UIContext实例,将该实例用为参数传入模块内,通过该实例调用vp2px或px2vp。