HarmonyOS 如何获取屏幕宽高并设置为全局供所有页面调用?

HarmonyOS 如何获取屏幕宽高并设置为全局供所有页面调用?

HarmonyOS
2024-09-29 11:52:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

可以在EntryAbility中的onWindowStageCreate中用display来获取屏幕的宽高,并将其通过AppStorage进行存储,然后在需要使用的页面处使用,以下是简单示例:

// EntryAbility.ets  
import display from '@ohos.display'; // 屏幕属性  
let screenHeight: number = 0;  // 保存屏幕高度(px)  
let screenWidth: number = 0;  // 保存屏幕宽度(px)  
export default class EntryAbility extends UIAbility {  
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {  
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');  
  }  
  onWindowStageCreate(windowStage: window.WindowStage): void {  
    // 通过屏幕属性获取屏幕宽高  
    display.getAllDisplays((err,data) => {  
      screenHeight = data[0].height;  
      screenWidth = data[0].width;  
      // 使用AppStorage存储获取的屏幕宽高  
      AppStorage.setOrCreate('globalScreenHeight', screenHeight);  
      AppStorage.setOrCreate('globalScreenWidth', screenWidth);  
      hilog.info(0x0000, 'testTag', `${screenHeight} --- ${screenWidth}`, 'Ability onWindowStageCreate')  
    })  
  }  
  onForeground(): void {  
    // Ability has brought to foreground  
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');  
  }  
  onBackground(): void {  
    // Ability has back to background  
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');  
  }  
}   
// Index.ets  
// 在页面中使用  
@Entry  
@Component  
struct Index {  
  @State screenHeight: number | undefined = AppStorage.get('globalScreenHeight');  
  build() {  
    Column() {  
      Text('屏幕高度:' + this.screenHeight)  
    }  
  }  
}

屏幕属性请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5

AppStorage请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-appstorage-V5

分享
微博
QQ
微信
回复
2024-09-29 18:02:05
相关问题
java如何获取屏幕。找不到api?
5560浏览 • 1回复 待解决
如何获取屏幕,你知道吗?
2466浏览 • 1回复 待解决
屏幕如何获取 ,求解决方法
1688浏览 • 1回复 待解决
如何获取组件和在屏幕上的位置
3194浏览 • 2回复 待解决
如何测量获取控件
820浏览 • 1回复 待解决
ArkTs如何获取组件的
4640浏览 • 1回复 待解决
如何获取窗口的信息
2360浏览 • 1回复 待解决
HarmonyOS photoAsset获取图片失败
357浏览 • 1回复 待解决
页面加载前获取网络图片的
709浏览 • 1回复 待解决
获取Column最终的
449浏览 • 1回复 待解决
HarmonyOS 下刘海的获取不到
55浏览 • 1回复 待解决
HarmonyOS如何获取指定子组件的
1259浏览 • 1回复 待解决
求大佬告知如何获取组件
474浏览 • 1回复 待解决
鸿蒙如何获取Element图片的
7932浏览 • 1回复 待解决