屏幕管理基础使用示例
介绍
本示例主要展示了屏幕管理提供管理设备屏幕的一些基础能力,例如获取默认显示设备的相关信息、获取全部显示设备的信息,此外还能对显示设备的插拔行为进行监听。应用可以根据对应的屏幕信息、屏幕状态变化、屏幕折叠状态等适配不同的UI界面显示。
屏幕属性的常见使用场景有以下几种:
- 查询屏幕信息:包括屏幕的分辨率、物理像素密度、逻辑像素密度、刷新率、屏幕尺寸、屏幕旋转方向、屏幕旋转角度等。
- 监听屏幕状态变化,包括屏幕旋转变化,屏幕分辨率变化、屏幕刷新率变化等。
- 查询当前设备是否为可折叠设备,同时支持折叠状态(展开/折叠)变化的监听。
使用说明
本示例包含6个功能:
- 获取Display对象。
- 获取Display对象属性。
- 获取挖孔信息。
- 获取截录屏状态。
- 测试Display监听机制。
- 折叠设备判断。
工程目录
DisplayBasicSample
entry/src/
├── main
│ ├── ets
│ │ └── pages
│ │ └── Index.ets (功能页面)
│ ├── module.json5
│ └── resources
├── ohosTest
├── mock
├── test
具体实现
- 获取Display对象
- 调用getDefaultDisplaySync()接口获取Display对象,将获取到的Display对象打印到log中。
- 获取Display对象属性
- 调用getDefaultDisplaySync()接口获取Display对象。
- 通过相关属性查询屏幕的一些基础信息,将属性信息打印到log中。
- 获取挖孔信息
- 调用getCutoutInfo()获取挖孔屏、刘海屏、瀑布屏等不可用的屏幕区域信息,以在UI布局时更好地规避该区域,将对应的信息打印到log中。
- 获取截录屏状态
- 调用display.isCaptured()判断当前设备是否正在截屏、投屏或录屏。
- 测试Display监听机制
- 调用display.on('add'|'remove'|'change')监听设备屏幕变化,支持监听屏幕设备的增加、移除和改变等,在不需要监听的时候,调用display.off('add'|'remove'|'change')关闭对应的监听。
- 调用display.on('captureStatusChange')开启屏幕截屏、投屏或录屏状态变化的监听;在不需要监听的时候,调用display.off('captureStatusChange')关闭对应的监听。
- 调用on('availableAreaChange')监听当前屏幕对象(Display对象)的可用区域变化;在不需要监听的时候,调用off('availableAreaChange')关闭对应的监听。
- 折叠设备判断
- 通过display.isFoldable()接口查询当前设备是不是折叠设备。
- 若当前设备为折叠设备,调用display.on('foldStatusChange')开启折叠设备折叠状态变化的监听;在不需要监听的时候,调用display.off('foldStatusChange')关闭对应的监听。
相关权限
不涉及
依赖
不涉及
约束与限制
- 本示例仅支持标准系统上运行, 支持设备:手机、平板、2in1。(部分字段可能仅支持部分设备,可参考使用说明)
- api20以上版本
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkUISample/DisplayBasicSample/ > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master