0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-29 10:49 次阅读

屏幕

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

说明:
开发前请熟悉鸿蒙开发指导文档 :[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

屏幕显示模式信息

搜狗高速浏览器截图20240326151450.png
系统能力: SystemCapability.WindowManager.WindowManager.Core

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

审核编辑 黄宇

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

    关注

    33

    文章

    8293

    浏览量

    150230
  • 开发
    +关注

    关注

    0

    文章

    359

    浏览量

    40751
  • 鸿蒙
    +关注

    关注

    57

    文章

    2275

    浏览量

    42569
  • OpenHarmony
    +关注

    关注

    25

    文章

    3561

    浏览量

    15845
收藏 人收藏

    评论

    相关推荐

    深入浅出,带你了解Qualcomm的图形图像优化之道

    用户的青睐,为此在2017年8月Qualcomm在深圳、北京、上海举行了三场“探索移动图形图像处理——Qualcomm开发者公开课”,全面向开发者介绍深层次的移动端图形图像的优化之道!
    发表于 09-07 13:47 7280次阅读

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

    屏幕属性提供管理显示设备的一些基础能力,包括获取默认显示设备的信息,获取所有显示设备的信息以及监听显示设备的插拔行为。
    的头像 发表于 05-30 11:39 630次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>图形图像</b>:【@<b class='flag-5'>ohos</b>.display (<b class='flag-5'>屏幕</b>属性)】

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

    本模块提供屏幕截图的能力,截取屏幕时支持设置截取的区域、大小等图像信息。
    的头像 发表于 05-29 15:47 773次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>图形图像</b>:【@<b class='flag-5'>ohos</b>.screenshot (<b class='flag-5'>屏幕</b>截图)】

    鸿蒙开发接口图形图像:【@ohos.window (窗口)】

    窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。
    的头像 发表于 05-30 10:07 983次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>图形图像</b>:【@<b class='flag-5'>ohos</b>.window (窗口)】

    鸿蒙原生应用元服务开发-WebGL网页图形开发接口说明

    一、场景介绍 WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式
    发表于 03-11 15:51

    图形图像处理技术大会抢座中

    图形图像处理技术大会抢座中全球顶级专家和企业参与。中国电子学会继云计算大会、物联网大会、传感器大会后又一年度盛会。技术交流、方案展示、产品发布---期待您的参与。
    发表于 09-16 14:14

    北京将召开图形图像技术应用交流大会 2013年11月将在北京...

    北京将召开图形图像技术应用交流大会 2013年11月将在北京举行图形图像技术应用大会,大会将邀请国内图像图形处理技术领域的著名专家,就图形图像处理技术的应用和最新动态特邀报告。敬请关注
    发表于 09-17 15:02

    北京将召开图形图像技术应用交流大会 2013年11月将在北京...

    北京将召开图形图像技术应用交流大会2013年11月将在北京举行图形图像技术应用大会,大会将邀请国内图像图形处理技术领域的著名专家,就图形图像处理技术的应用和最新动态特邀报告。敬请关注中
    发表于 09-17 15:06

    计算机图形图像处理最新应用分析

    计算机图形图像处理最新应用分析 图形图像处理是研究计算机除了图形图像的原理、方法和技术的科学。它是计算机科学和应用的重要分支之一,同时随着计算机技术的发展,图形图像技术在土木工程、机械
    发表于 09-23 14:56

    主要做图形图像处理,求助板子选择!

    各位前辈大家好!我主要是做C/C++项目开发的,最近项目需要用到FPGA板子来做图形图像处理,困于自己对FPGA还不了解,特来求助大家啊!{:1:}我想要实现的功能是读取SD卡中的视频然后将视频里面
    发表于 03-30 20:19

    图形图像处理实验的工程文件免费下载

      本文档的主要内容详细介绍的是图形图像处理实验的工程文件免费下载。
    发表于 11-03 17:50 9次下载
    <b class='flag-5'>图形图像</b>处理实验的工程文件免费下载

    鸿蒙开发图形图像——@ohos.effectKit (图像效果)

    图像效果提供处理图像的一些基础能力,包括对当前图像的亮度调节、模糊化、灰度调节、智能取色等。 该模块提供以下图像效果相关的常用功能: Filter:效果类,用于添加指定效果到
    的头像 发表于 02-22 16:08 308次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>图形图像</b>——@<b class='flag-5'>ohos</b>.effectKit (<b class='flag-5'>图像</b>效果)

    鸿蒙OS元服务开发说明:【WebGL网页图形开发接口

    WebGL主要帮助开发者在前端开发中完成图形图像的相关处理,比如绘制彩色图形等。目前该功能仅支持使用兼容JS的类Web开发范式
    的头像 发表于 04-02 17:02 391次阅读
    <b class='flag-5'>鸿蒙</b>OS元服务<b class='flag-5'>开发</b>说明:【WebGL网页<b class='flag-5'>图形</b>库<b class='flag-5'>开发</b><b class='flag-5'>接口</b>】

    鸿蒙开发接口图形图像:【WebGL】

    WebGL提供图形绘制的能力,包括对当前绘制图形的位置、颜色等进行处理。
    的头像 发表于 05-30 09:31 404次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>图形图像</b>:【WebGL】

    鸿蒙开发接口图形图像:【WebGL2】

    WebGL2支持图形的绘制,包括对当前绘制图形的位置、颜色等进行处理,其中相对WebGL来说对渲染管道和着色语言进行了增强。
    的头像 发表于 05-30 15:19 432次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b><b class='flag-5'>接口</b><b class='flag-5'>图形图像</b>:【WebGL2】