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

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

HarmonyOS
2024-09-29 11:52:54
3393浏览
收藏 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)  
    }  
  }  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

屏幕属性请参考: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
相关问题
如何获取屏幕,你知道吗?
3416浏览 • 1回复 待解决
屏幕如何获取 ,求解决方法
2517浏览 • 1回复 待解决
java如何获取屏幕。找不到api?
6436浏览 • 1回复 待解决
如何获取组件和在屏幕上的位置
4523浏览 • 2回复 待解决
HarmonyOS 如何获取Webview的
612浏览 • 1回复 待解决
如何测量获取控件
1391浏览 • 1回复 待解决
HarmonyOS ArkUI中设置
709浏览 • 1回复 待解决
HarmonyOS RelativeContainer设置问题
523浏览 • 1回复 待解决
HarmonyOS 获取图片的
927浏览 • 1回复 待解决
HarmonyOS 如何获取组件的大小,
1267浏览 • 1回复 待解决
页面加载前获取网络图片的
1469浏览 • 1回复 待解决
ArkTs如何获取组件的
5813浏览 • 1回复 待解决
如何获取窗口的信息
3147浏览 • 1回复 待解决
HarmonyOS 获取手机设备
934浏览 • 1回复 待解决
获取Column最终的
1154浏览 • 1回复 待解决
HarmonyOS photoAsset获取图片失败
908浏览 • 1回复 待解决