鸿蒙开发接口图形图像:【@ohos.screen (屏幕)】

电子说

1.3w人已加入

描述

屏幕

本模块提供管理屏幕的一些基础能力,包括获取屏幕对象,监听屏幕变化,创建和销毁虚拟屏幕等。

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md] > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口为系统接口。

导入模块

import screen from '@ohos.screen';

screen.getAllScreens

getAllScreens(callback: AsyncCallback>): void

获取所有的屏幕,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
callbackAsyncCallback>回调函数。返回当前获取的屏幕对象集合。

示例:

var screenClass = null;
screen.getAllScreens((err, data) = > {
    if (err.code) {
        console.error('Failed to get all screens . Cause:  ' + JSON.stringify(err));
        return;
    }
    console.info('Succeeded in getting all screens . Data:' + JSON.stringify(data));
    screenClass = data[0];
});

screen.getAllScreens

getAllScreens(): Promise>

获取所有的屏幕,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

返回值:

类型说明
Promise>Promise对象。返回当前创建的屏幕对象集合。

示例:

var screenClass = null;
let promise = screen.getAllScreens();
promise.then((data) = > {
    screenClass = data[0];
    console.log('Succeeded in getting all screens . Data:'+ JSON.stringify(data));
}).catch((err) = > {
    console.log('Failed to get all screens . Cause: ' + JSON.stringify(err));
});

screen.on('connect' | 'disconnect' | 'change')

on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback): void

开启屏幕状态变化的监听。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
eventTypestring监听事件。 -eventType为"connect"表示屏幕连接事件。 -eventType为"disconnect"表示断开屏幕连接事件。 -eventType为"change"表示屏幕状态改变事件。
callbackCallback回调函数。返回屏幕的id。

示例:

var callback = (data) = > {
    console.info('Register the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.on("connect", callback);

screen.off('connect' | 'disconnect' | 'change')

off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback): void

关闭屏幕状态变化的监听。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
eventTypestring监听事件。 -eventType为"connect"表示屏幕连接事件。 -eventType为"disconnect"表示断开屏幕连接事件。 -eventType为"change"表示屏幕状态改变事件。
callbackCallback回调函数。返回屏幕的id。

示例:

var callback = (data) = > {
    console.info('Unegister the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.off("connect", callback);

screen.makeExpand

makeExpand(options:Array, callback: AsyncCallback): void

将屏幕设置为扩展模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
optionsArray<[ExpandOption]>设置扩展屏幕的参数集合。
callbackCallback回调函数。返回扩展屏幕的群组id。

示例:

var groupId = null;
screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}], (err, data) = > {
  if (err.code) {
    console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
    return;
  }
  groupId = data;
  console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
});

screen.makeExpand

makeExpand(options:Array): Promise

将屏幕设置为扩展模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
optionsArray<[ExpandOption]>设置扩展屏幕的参数集合。

返回值:

类型说明
PromisePromise对象。返回扩展屏幕的群组id。

示例:

screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}]).then((data) = > {
  console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
}).catch((err) = > {
  console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
});

screen.makeMirror

makeMirror(mainScreen:number, mirrorScreen:Array, callback: AsyncCallback): void

将屏幕设置为镜像模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
mainScreennumber主屏幕id。
mirrorScreenArray镜像屏幕id集合。
callbackAsyncCallback回调函数。返回镜像屏幕的群组id。

示例:

var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds, (err, data) = > {
  if (err.code) {
    console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
    return;
  }
  console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
});

screen.makeMirror

makeMirror(mainScreen:number, mirrorScreen:Array): Promise

将屏幕设置为镜像模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名类型必填说明
mainScreennumber主屏幕id。
mirrorScreenArray镜像屏幕id集合。

返回值:

类型说明
PromisePromise对象。返回镜像屏幕的群组id。

示例:

var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds).then((data) = > {
  console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
}).catch((err) = > {
  console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
});

ExpandOption

扩展屏幕的参数。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称参数类型可读可写说明
screenIdnumber屏幕的id。
startXnumber屏幕的起始X轴坐标。
startYnumber屏幕的起始Y轴坐标。

Screen

屏幕实例。

下列API示例中都需先使用[getAllScreens()]方法获取到Screen实例,再通过此实例调用对应方法。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称参数类型可读可写说明
idnumber屏幕的id。
parentnumber屏幕所属群组的id。
supportedModeInfoArray<[ScreenModeInfo]>屏幕支持的模式集合。
activeModeIndexnumber当前屏幕所处模式索引。
orientation[Orientation]屏幕方向。

setOrientation

setOrientation(orientation: Orientation, callback: AsyncCallback): void

设置屏幕方向,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名类型必填说明
orientation[Orientation]屏幕方向。
callbackAsyncCallback回调函数。当设置屏幕方向成功,err为undefined,否则为错误对象。

示例:

screenClass.setOrientation(screen.Orientation.VERTICAL, (err, data) = > {
    if (err.code) {
        console.error('Failed to setOrientation VERTICAL. Cause: ' + JSON.stringify(err));
        return;
    }
    console.info('Succeeded in setting Orientation VERTICAL. data: ' + JSON.stringify(data));
})

setOrientation

setOrientation(orientation: Orientation): Promise

设置屏幕方向,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名类型必填说明
orientation[Orientation]屏幕方向。

返回值:

类型说明
Promise无返回结果的Promise对象。

示例:

let promise = screenClass.setOrientation(screen.Orientation.VERTICAL);
promise.then((data) = > {
    console.info('Succeeded in setting Orientation VERTICAL. Data: ' + JSON.stringify(data));
}).catch((err) = > {
    console.error('Failed to set Orientation VERTICAL. Cause: ' + JSON.stringify(err));
})

setScreenActiveMode

setScreenActiveMode(modeIndex: number, callback: AsyncCallback): void

设置屏幕当前显示模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名类型必填说明
modeIndexnumber模式索引。
callbackAsyncCallback回调函数。当设置屏幕当前显示模式成功,err为undefined,否则为错误对象。

示例:

var modeIndex = 0;
screenClass.setScreenActiveMode(modeIndex, (err, data) = > {
    if (err.code) {
        console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
        return;
    }
    console.info('Succeeded in setting ScreenActiveMode 0. data: ' + JSON.stringify(data));
})

setScreenActiveMode

setScreenActiveMode(modeIndex: number): Promise

设置屏幕当前显示模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名类型必填说明
modeIndexnumber模式索引。

返回值:

类型说明
Promise无返回结果的Promise对象。

示例:

var modeIndex = 0;
let promise = screenClass.setScreenActiveMode(modeIndex);
promise.then((data) = > {
    console.info('Succeeded in setting ScreenActiveMode 0. Data: ' + JSON.stringify(data));
}).catch((err) = > {
    console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
})

Orientation

屏幕方向枚举。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称说明
UNSPECIFIED0表示未指定屏幕方向,由系统指定。
VERTICAL1表示指定屏幕为垂直方向。
HORIZONTAL2表示指定屏幕为水平方向。
REVERSE_VERTICAL3表示指定屏幕为反向垂直方向。
REVERSE_HORIZONTAL4表示指定屏幕为反向水平方向。
SENSOR5表示屏幕方向跟随传感器方向。
SENSOR_VERTICAL6表示屏幕方向垂直跟随传感器方向。
SENSOR_HORIZONTAL7表示屏幕方向水平跟随传感器方向。

ScreenModeInfo

屏幕显示模式信息。

接口
系统能力: SystemCapability.WindowManager.WindowManager.Core

名称参数类型可读可写说明HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
idnumber模式id,所支持的模式由具体设备分辨率和刷新率决定。
widthnumber屏幕的宽度。
heightnumber屏幕的高度。
refreshRatenumber屏幕的刷新率。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分