HarmonyOS鸿蒙Next中如何获取屏幕宽度或者window宽度

HarmonyOS鸿蒙Next中如何获取屏幕宽度或者window宽度 如何获取屏幕宽度或者window宽度

4 回复

获取window宽度:您可以通过getWindowProperties去获取当前窗口的属性信息,通过windowRect可以获取窗口的尺寸信息

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5#getwindowproperties9

获取屏幕宽度:

参考demo:

import { BusinessError } from '@kit.BasicServicesKit';
import { display } from '@kit.ArkUI';
@Entry
@Component
struct Index{
  getInfo(){
    let displayClass: Array<display.Display> = [];
    display.getAllDisplays((err: BusinessError, data: Array<display.Display>) => {
      let screenWidth : number = data[0].width
      let screenHeight : number = data[0].height
      console.log('width = ' + screenWidth + 'height = ' + screenHeight)
      displayClass = data;
      const errCode: number = err.code;
      if (errCode) {
        console.error(`Failed to obtain all the display objects. Code: ${err.code}, message: ${err.message}`);
        return;
      }
      console.info(`Succeeded in obtaining all the display objects. Data: ${JSON.stringify(data)}`);
    });
  }
  build(){
    Button('获取当前屏幕宽度').width(100).height(100)
      .onClick(() =>{
        this.getInfo()
      })
  }
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-display-V5#displaygetalldisplays9

更多关于HarmonyOS鸿蒙Next中如何获取屏幕宽度或者window宽度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


import display from '@ohos.display'
static width: number = display.getDefaultDisplaySync().width / display.getDefaultDisplaySync().scaledDensity;
static height: number = display.getDefaultDisplaySync().height / display.getDefaultDisplaySync().scaledDensity;

在HarmonyOS鸿蒙Next中,可以通过WindowManager模块获取屏幕或窗口的宽度。具体步骤如下:

  1. 获取屏幕宽度: 使用WindowManagergetDefaultDisplay方法获取屏幕的默认显示对象,然后通过getSize方法获取屏幕的尺寸。

    import window from '[@ohos](/user/ohos).window';
    
    let windowManager = window.getWindowManager();
    let display = windowManager.getDefaultDisplay();
    let size = display.getSize();
    let screenWidth = size.width;
    
  2. 获取窗口宽度: 如果你需要获取当前窗口的宽度,可以通过Window对象的getWindowProperties方法获取窗口的属性,然后从属性中提取宽度。

    import window from '[@ohos](/user/ohos).window';
    
    let windowClass = window.getTopWindow();
    let windowProperties = windowClass.getWindowProperties();
    let windowWidth = windowProperties.windowRect.width;
    

以上代码展示了如何在HarmonyOS鸿蒙Next中获取屏幕宽度和窗口宽度,使用的是ArkTS语言,符合鸿蒙Next的开发规范。

在HarmonyOS鸿蒙Next中,可以通过WindowManager获取屏幕或窗口的宽度。使用WindowManager.getDefaultDisplay().getSize()方法获取屏幕尺寸,或通过Window.getAttributes().width获取窗口宽度。示例代码如下:

WindowManager windowManager = getContext().getSystemService(WindowManager.class);
Display display = windowManager.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x; // 屏幕宽度

Window window = getWindow();
int windowWidth = window.getAttributes().width; // 窗口宽度

确保在UI线程中调用这些方法,以避免线程安全问题。

回到顶部