屏幕管理NativeApi基础使用示例
介绍
本示例主要展示了OH_DisplayManager屏幕管理模块用于提供屏幕的信息查询、屏幕状态变化监听、折叠设备的折叠状态变化监听等能力,应用可根据对应的屏幕信息、屏幕状态变化、屏幕折叠状态适配不同的UI界面显示。
屏幕属性的常见使用场景有以下几种:
- 支持查询的屏幕信息,包括屏幕的分辨率、物理像素密度、逻辑像素密度、刷新率、屏幕尺寸、屏幕旋转方向、屏幕旋转角度等。
- 支持屏幕状态变化的监听,包括屏幕旋转变化,屏幕分辨率变化、屏幕刷新率变化等。
- 支持查询当前设备是否为可折叠设备,同时支持折叠状态(展开/折叠)变化的监听。
使用说明
本示例包含5个功能:
- 获取屏幕Rotation属性。
- 获取挖孔信息。
- 测试Display监听机制。
- 折叠设备判断。
- 测试折叠状态监听。
工程目录
NativeDisplayBasicSample
entry/src/main/ets/
└── pages
├── Index.ets (功能页面)
entry/src/main/
├── cpp
│ ├── types
│ │ └── libnativedisplay
│ │ └── Index.d.ts (函数对应的js映射)
│ ├── napi_init.cpp
│ └── CMakeLists.txt (CMake脚本)
└── resources
├── base
│ ├── element
│ │ ├── color.json
│ │ ├── float.json
│ │ └── string.json
│ └── media
具体实现
- 获取屏幕Rotation属性
- 调用OH_NativeDisplayManager_GetDefaultDisplayRotation接口获取默认屏幕的旋转角度,并将此属性信息打印到log中。
- 获取挖孔信息
- 调用OH_NativeDisplayManager_CreateDefaultDisplayCutoutInfo获取挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息,并将此信息打印到log中。
- 在使用完此信息后,调用OH_NativeDisplayManager_DestroyDefaultDisplayCutoutInfo销毁挖孔屏、刘海屏、瀑布屏等不可用屏幕区域信息。
- 测试Display监听机制
- 调用OH_NativeDisplayManager_RegisterDisplayChangeListener接口注册屏幕变化的监听,包括屏幕旋转、分辨率变化、刷新率变化、DPI变化都会触发此监听回调。
- 在不需要监听的时候,调用OH_NativeDisplayManager_UnregisterDisplayChangeListener接口取消屏幕状态变化的监听。
- 折叠设备判断
- 调用通过OH_NativeDisplayManager_IsFoldable接口查询设备是否为折叠设备。
- 测试折叠状态监听
- 调用OH_NativeDisplayManager_RegisterFoldDisplayModeChangeListener注册屏幕展开/折叠状态变化的监听。
- 在不需要监听的时候,调用OH_NativeDisplayManager_UnregisterFoldDisplayModeChangeListener接口取消屏幕展开/折叠状态变化的监听。
相关权限
不涉及
依赖
不涉及
约束与限制
- 本示例仅支持标准系统上运行, 支持设备:手机、平板、2in1。(部分字段可能仅支持部分设备,可参考使用说明)
- api20以上版本
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkUISample/NativeDisplayBasicSample > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master