当前位置:   article > 正文

HarmonyOS鸿蒙学习笔记(17)获取屏幕宽高等属性_鸿蒙获取屏幕宽度

鸿蒙获取屏幕宽度


@ohos.display屏幕属性提供管理显示设备的一些基础能力,包括获取默认显示设备的信息,获取所有显示设备的信息以及监听显示设备的插拔行为。我们可以通过该组件获取屏幕的宽高等信息

获取屏幕属性的四种方法

在@Component的aboutToAppear方法调用@ohos.display的相关API,可以获取屏幕的属性。@ohos.display提供了三个获取屏幕属性的方法:getDefaultDisplay(callback: AsyncCallback<Display>)getDefaultDisplay()getAllDisplay(callback: AsyncCallback<Array<Display>>)方法。下面简单看下三个方法的用法。

getDefaultDisplay(callback: AsyncCallback)的用法

在使用的时候,需要import display from '@ohos.display'引入组件。

//引入@ohos.display组件
import display from '@ohos.display';
@Entry
@Component
struct Index {
  aboutToAppear() {
    // 获取屏幕宽高
    display.getDefaultDisplay((err, data) => {
      if (err) {
        console.error('Failed to obtain the default display object. Code:  ' + JSON.stringify(err));
        return;
      }
      console.info(JSON.stringify(data));
    });
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

输入为:

{
    "alive":true,
    "densityDPI":560,
    "densityPixels":3.5,
    "height":2560,
    "id":0,
    "name":"内置屏幕",
    "refreshRate":60.000004,
    "rotation":0,
    "scaledDensity":3.5,
    "state":2,
    "width":1440,
    "xDPI":560,
    "yDPI":560
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

各个字段的含义:
在这里插入图片描述
比如我们想要获取宽,则只需要使用data.width即可。

getDefaultDisplay()的用法

获取当前默认的display对象。使用Promise异步回调。该方法返回的是Promise

  let promise = display.getDefaultDisplay();
    promise.then((data) => {//此处data为Display对象
      console.info(JSON.stringify(data));
    }).catch((err) => {
      console.info( JSON.stringify(err));
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出同getDefaultDisplay(callback: AsyncCallback<Display>)

getAllDisplay(callback: AsyncCallback<Array>)的用法

获取当前所有的display对象。使用Promise异步回调。返回的是json数组。

    display.getAllDisplay((err, data) => {
      if (err) {
        console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
        return;
      }
      console.info(JSON.stringify(data))
    });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出为JSON数组:

[
    {
        "alive":true,
        "densityDPI":560,
        "densityPixels":3.5,
        "height":2560,
        "id":0,
        "name":"内置屏幕",
        "refreshRate":60.000004,
        "rotation":0,
        "scaledDensity":3.5,
        "state":2,
        "width":1440,
        "xDPI":560,
        "yDPI":560
    }
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

getDefaultDisplaySync()的用法

也可以使用getDefaultDisplaySync方法获取屏幕宽高:

let screenWidth = display.getDefaultDisplaySync().width;
      let screenHeight = display.getDefaultDisplaySync().height;
  • 1
  • 2

参考资料

@ohos.display官方文档
@ohos.display (屏幕属性)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/225843
推荐阅读
相关标签
  

闽ICP备14008679号