屏幕属性
屏幕属性提供管理显示设备的一些基础能力,包括获取默认显示设备的信息,获取所有显示设备的信息以及监听显示设备的插拔行为。
说明:
开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import display from '@ohos.display';
DisplayState
用于表示显示设备的状态。
系统能力: SystemCapability.WindowManager.WindowManager.Core
名称 | 默认值 | 说明 |
---|---|---|
STATE_UNKNOWN | 0 | 表示显示设备状态未知。 |
STATE_OFF | 1 | 表示显示设备状态为关闭。 |
STATE_ON | 2 | 表示显示设备状态为开启。 |
STATE_DOZE | 3 | 表示显示设备为低电耗模式。 |
STATE_DOZE_SUSPEND | 4 | 表示显示设备为睡眠模式,CPU为挂起状态。 |
STATE_VR | 5 | 表示显示设备为VR模式。 |
STATE_ON_SUSPEND | 6 | 表示显示设备为开启状态,CPU为挂起状态。 |
Display
描述display对象的属性。
系统能力: SystemCapability.WindowManager.WindowManager.Core
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
id | number | 是 | 否 | 显示设备的id号。 |
name | string | 是 | 否 | 显示设备的名称。 |
alive | boolean | 是 | 否 | 显示设备是否启用。 |
state | [DisplayState] | 是 | 否 | 显示设备的状态。 |
refreshRate | number | 是 | 否 | 显示设备的刷新率。 |
rotation | number | 是 | 否 | 显示设备的屏幕旋转角度。 |
width | number | 是 | 否 | 显示设备的宽度,单位为像素。 |
height | number | 是 | 否 | 显示设备的高度,单位为像素。 |
densityDPI | number | 是 | 否 | 显示设备的屏幕密度,单位为DPI。 |
densityPixels | number | 是 | 否 | 显示设备的屏幕密度,单位为像素。 |
scaledDensity | number | 是 | 否 | 显示设备的显示字体的缩放因子。 |
xDPI | number | 是 | 否 | x方向中每英寸屏幕的确切物理像素值。 |
yDPI | number | 是 | 否 | y方向中每英寸屏幕的确切物理像素值。 |
display.getDefaultDisplay
getDefaultDisplay(callback: AsyncCallback<Display>): void
获取当前默认的display对象。
系统能力: SystemCapability.WindowManager.WindowManager.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<[Display]> | 是 | 回调函数。返回当前默认的display对象。 |
示例:
var displayClass = null;
display.getDefaultDisplay((err, data) => {if (err.code) {console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(err));return;}console.info('Succeeded in obtaining the default display object. Data:' + JSON.stringify(data));displayClass = data;
});
display.getDefaultDisplay
getDefaultDisplay(): Promise<Display>
获取当前默认的display对象。
系统能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
类型 | 说明 |
---|---|
Promise<[Display]> | Promise对象。返回当前默认的display对象。 |
示例:
let promise = display.getDefaultDisplay();
promise.then(() => {console.log('getDefaultDisplay success');
}).catch((err) => {console.log('getDefaultDisplay fail: ' + JSON.stringify(err));
});
display.getAllDisplay
getAllDisplay(callback: AsyncCallback<Array<Display>>): void
获取当前所有的display对象。
系统能力: SystemCapability.WindowManager.WindowManager.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<Array<[Display]>> | 是 | 回调函数。返回当前所有的display对象。 |
示例:
display.getAllDisplay((err, data) => {if (err.code) {console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));return;}console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data))
});
display.getAllDisplay
getAllDisplay(): Promise<Array<Display>>
获取当前所有的display对象。
系统能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
类型 | 说明 |
---|---|
Promise<Array<[Display]>> | Promise对象。返回当前所有的display对象。 |
示例:
let promise = display.getAllDisplay();
promise.then(() => {console.log('getAllDisplay success');
}).catch((err) => {console.log('getAllDisplay fail: ' + JSON.stringify(err));
});
display.on('add'|'remove'|'change')
on(type: 'add'|'remove'|'change', callback: Callback<number>): void
开启监听。
系统能力: SystemCapability.WindowManager.WindowManager.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 设置监听类型。 - type为"add",表示监听增加显示设备。 - type为"remove",表示监听移除显示设备。 - type为"change",表示监听改变显示设备。 |
callback | Callback<number> | 是 | 回调函数。返回监听到的显示设备的id。 |
示例:
var callback = (data) => {console.info('Listening enabled. Data: ' + JSON.stringify(data))
}
display.on("add", callback);
display.off('add'|'remove'|'change')
off(type: 'add'|'remove'|'change', callback?: Callback<number>): void
关闭监听。
系统能力: SystemCapability.WindowManager.WindowManager.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 设置监听类型。 - type为"add",表示监听增加显示设备。 - type为"remove",表示监听移除显示设备。 - type为"change",表示监听改变显示设备。 |
callback | Callback<number> | 否 | 回调函数。返回监听到的显示设备的id。HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 |
示例:
display.off("remove");
2024年,已有许多程序员把未来投向了鸿蒙开发,想必也在网上寻找过【鸿蒙学习资料】,然而搜索到的资料都是七零八碎比较杂乱,对于新入门的人来说增加了时间成本;为了避免大家在学习过程中浪费过多时间。对此录制了一套鸿蒙基础进阶视频(HarmonyOS NEXT)开发入门&实战教学视频(200集+)发放给大家。↓↓↓点击即可
《鸿蒙 (HarmonyOS NEXT)开发入门&实战教学视频》
《鸿蒙ArkTS语言》
《鸿蒙ArkUI声明式》
《鸿蒙开发环境搭建》
另外还根据鸿蒙官方发布的文档结合华为内部人员分享,经过反复修改整理得出的一整套鸿蒙(HarmonyOS NEXT)学习手册(共计2000页+)想要鸿蒙进阶文档的开发者有福了!
内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上少走弯路!点击即可↓↓↓
《鸿蒙 (HarmonyOS NEXT)开发基础与实战手册》