OpenHarmony开发者论坛

标题: OpenHarmony如何获取屏幕属性 [打印本页]

作者: 润开鸿_坚果    时间: 2023-11-22 09:55
标题: OpenHarmony如何获取屏幕属性
[md]## 获取屏幕属性



**这一篇文章主要是为了获取到屏幕属性之后,方便没有预览器的同学使用**

### 完整源码

```
import common from '@ohos.app.ability.common';
import display from '@ohos.display';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State display: string = '屏幕属性';

  build() {
    Row() {
      Column() {

        Text(this.display).fontSize(36)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let displayClass = null;
            let promise = display.getAllDisplays();
            promise.then((data) => {
              displayClass = data;
              console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
              this.display = JSON.stringify(data)
            }).catch((err) => {
              console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
```

### 返回的参数说明

| **名称**          | **类型**         | **可读** | **可写** | **说明**                                                                                                                                                                              |
| ------------------- | ------------------ | ---------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **id**            | **number**       | **是**   | **否**   | **显示设备的id号,该参数应为整数。**                                                                                                                                                  |
| **name**          | **string**       | **是**   | **否**   | **显示设备的名称。**                                                                                                                                                                  |
| **alive**         | **boolean**      | **是**   | **否**   | **显示设备是否启用。**                                                                                                                                                                |
| **state**         | **DisplayState** | **是**   | **否**   | **显示设备的状态。**                                                                                                                                                                  |
| **refreshRate**   | **number**       | **是**   | **否**   | **显示设备的刷新率,该参数应为整数。**                                                                                                                                                |
| **rotation**      | **number**       | **是**   | **否**   | **显示设备的屏幕旋转角度。 值为0时,表示显示设备屏幕旋转为0°; 值为1时,表示显示设备屏幕旋转为90°; 值为2时,表示显示设备屏幕旋转为180°; 值为3时,表示显示设备屏幕旋转为270°。** |
| **width**         | **number**       | **是**   | **否**   | **显示设备的宽度,单位为像素,该参数应为整数。**                                                                                                                                      |
| **height**        | **number**       | **是**   | **否**   | **显示设备的高度,单位为像素,该参数应为整数。**                                                                                                                                      |
| **densityDPI**    | **number**       | **是**   | **否**   | **显示设备的屏幕密度,表示每英寸点数。该参数为浮点数,一般取值160.0、480.0等。**                                                                                                      |
| **orientation**   | **Orientation**  | **是**   | **否**   | **表示屏幕当前显示的方向。**                                                                                                                                                          |
| **densityPixels** | **number**       | **是**   | **否**   | **显示设备的逻辑密度,是像素单位无关的缩放系数。该参数为浮点数,一般取值1.0、3.0等。**                                                                                                |
| **scaledDensity** | **number**       | **是**   | **否**   | **显示设备的显示字体的缩放因子。该参数为浮点数,通常与densityPixels相同。**                                                                                                           |
| **xDPI**          | **number**       | **是**   | **否**   | **x方向中每英寸屏幕的确切物理像素值,该参数为浮点数。**                                                                                                                               |
| **yDPI**          | **number**       | **是**   | **否**   | **y方向中每英寸屏幕的确切物理像素值,该参数为浮点数。**                                                                                                                               |

### 返回的数据

```
[{
  "id": 0,
  "width": 800,
  "height": 1280,
  "refreshRate": 66,
  "name": "display_0",
  "alive": true,
  "state": 0,
  "rotation": 0,
  "densityDPI": 240,
  "densityPixels": 1.5,
  "scaledDensity": 1.5,
  "xDPI": 0,
  "yDPI": 0
}]
```

### 运行后在屏幕上的展示

![image-20231122090940728](https://luckly007.oss-cn-beijing ... 231122090940728.png)

### 参考

[https://docs.openharmony.cn/page ... js-apis-display.md/](https://docs.openharmony.cn/page ... js-apis-display.md/)

[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5