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

 屏幕

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

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

本模块接口为系统接口。

导入模块

import screen from '@ohos.screen';

screen.getAllScreens

getAllScreens(callback: AsyncCallback<Array<Screen>>): void

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

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

参数:

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

示例:

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<Array<Screen>>

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

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

返回值:

类型说明
Promise<Array<[Screen]>>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<number>): void

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

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

参数:

参数名类型必填说明
eventTypestring监听事件。 -eventType为"connect"表示屏幕连接事件。 -eventType为"disconnect"表示断开屏幕连接事件。 -eventType为"change"表示屏幕状态改变事件。
callbackCallback<number>回调函数。返回屏幕的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<number>): void

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

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

参数:

参数名类型必填说明
eventTypestring监听事件。 -eventType为"connect"表示屏幕连接事件。 -eventType为"disconnect"表示断开屏幕连接事件。 -eventType为"change"表示屏幕状态改变事件。
callbackCallback<number>回调函数。返回屏幕的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<ExpandOption>, callback: AsyncCallback<number>): void

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

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

参数:

参数名类型必填说明
optionsArray<[ExpandOption]>设置扩展屏幕的参数集合。
callbackCallback<number>回调函数。返回扩展屏幕的群组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<ExpandOption>): Promise<number>

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

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

参数:

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

返回值:

类型说明
Promise<number>Promise对象。返回扩展屏幕的群组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<number>, callback: AsyncCallback<number>): void

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

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

参数:

参数名类型必填说明
mainScreennumber主屏幕id。
mirrorScreenArray<number>镜像屏幕id集合。
callbackAsyncCallback<number>回调函数。返回镜像屏幕的群组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<number>): Promise<number>

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

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

参数:

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

返回值:

类型说明
Promise<number>Promise对象。返回镜像屏幕的群组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>): void

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

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

参数名类型必填说明
orientation[Orientation]屏幕方向。
callbackAsyncCallback<void>回调函数。当设置屏幕方向成功,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<void>

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

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

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

返回值:

类型说明
Promise<void>无返回结果的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>): void

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

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

参数名类型必填说明
modeIndexnumber模式索引。
callbackAsyncCallback<void>回调函数。当设置屏幕当前显示模式成功,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<void>

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

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

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

返回值:

类型说明
Promise<void>无返回结果的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

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

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LBank研究院: DePIN赛道解析|加密精神与Jevons悖论的第三世界

作者&#xff1a;Eva&#xff0c;LBank研究员 *本人谨代表作者观点&#xff0c;不构成任何交易建议。 *本文内容为原创&#xff0c;版权为LBank所有&#xff0c;如需转载请注明作者和出处&#xff0c;否则将追究法律责任。 TLDR: DePIN是对传统老牌硬件的洗牌挑战&#xff…

节水“云”科普丨北京昌平VR节水云展馆精彩上线

2024年5月15日上午&#xff0c;由北京昌平区水务局主办的“推进城市节水&#xff0c;建设美丽昌平——2024年全国城市节约用水宣传周暨‘坚持节水优先 树立节水标杆’昌平节水在行动主题实践活动”隆重举办&#xff0c;活动期间&#xff0c;昌平区水务局应用VR虚拟现实技术创新…

你什么时候感觉学明白Java了?

学是学不明白Java的&#xff0c;要学明白Java&#xff0c;一定只能在工作以后。 1 在学习阶段&#xff0c;哪怕是借鉴别人的学习路线&#xff0c;其实依然会学很多不必要的技能&#xff0c;比如jsp&#xff0c;swing&#xff0c;或者多线程&#xff0c;或者设计模式。 2 或者…

vue2注册全局过滤器filters

全局过滤器 **在filters节点下定义的过滤器&#xff0c;称为私有过滤器**&#xff0c;因为它只能在当前vm实例所使用&#xff0c;**如果希望在多个vue实例之间共享过滤器**&#xff0c;可使用下面方法定义全局过滤器&#xff1a; Vue.filter( )方法接受两个参数&#xff1a; …

php 变量值传递和引用传递

一、值传递和引用传递 二、在foreach 中的引用传递 public function actionR(){$a [a>1,b>2,];foreach ($a as &$item){$i 100;$item $i;}$b [a>1,b>2];foreach ($b as &$item){$i 99;$item $i;}var_dump($a,$b);}可见 在两个foreach 中&$item …

md5强弱碰撞

一&#xff0c;类型。 1.弱比较 php中的""和""在进行比较时&#xff0c;数字和字符串比较或者涉及到数字内容的字符串&#xff0c;则字符串会被转换为数值并且比较按照数值来进行。按照此理&#xff0c;我们可以上传md5编码后是0e的字符串&#xff0c;在…

搜维尔科技:Movella Xsens动作捕捉技术助力于中国戏曲演员运动分析

Xsens动作捕捉技术助力于中国戏曲演员运动分析 搜维尔科技&#xff1a;Movella Xsens动作捕捉技术助力于中国戏曲演员运动分析

nginx流量监控:goAccess安装与使用

关于goAccess GoAccess 是一款实时、快速的日志分析工具&#xff0c;专门设计用于分析Web服务器日志&#xff0c;特别是Nginx日志。 安装 &#xff08;1&#xff09;准备相关依赖 # Missing development libraries for ncursesw # centOS yum install -y ncurses-devel # U…

算法002:复写零

力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/duplicate-zeros/ 使用 双指针 来解题&#xff1a; 具体思路 如果是和00…

多模态中的模态有哪些

“多模态”这个名字中的“模态”&#xff08;modality&#xff09;&#xff0c;指的是不同的数据类型或信息源。在多模态大模型中&#xff0c;常见的模态包括&#xff1a; 文本模态&#xff1a; 包括自然语言文本、语音识别文本等。 图像模态&#xff1a; 指图像数据&#xff…

C++ 常量和变量

1 常量 具体把数据写出来 2,3&#xff0c;4&#xff1b;1.2 1.3;“Hello world!”,“C” cout<<2015 常量&#xff1a;不能改变的量。 字面常量&#xff08;字面量、直接常量&#xff09;:直接写出的数据。 符号常量&#xff1a;用符号表示数据&#xff0c;但它一旦确定…

Java面试精粹:高级问题与解答指南(二)

Java 高级面试问题与答案 问题1&#xff1a;请解释Java内存模型&#xff08;JMM&#xff09;及其重要性 答案&#xff1a; Java内存模型&#xff08;JMM&#xff09;定义了Java程序中各种变量&#xff08;线程共享变量&#xff09;的访问规则&#xff0c;以及在并发环境下&am…

2024下半年NPDP考试时间已定,产品经理请提前规划!

产品经理国际资格认证&#xff08;NPDP&#xff09;&#xff0c;由美国产品开发与管理协会&#xff08;PDMA&#xff09;所发起&#xff0c;是国际公认的唯一的新产品开发专业认证。本文将为大家讲述2024年下半年NPDP认证考试报名相关事项。 免费送备考资料。联系我们&#xf…

【CCF-CSP】202309-1 202309-2 坐标变换

坐标变换&#xff08;其一&#xff09; 代码&#xff1a; #include <bits/stdc.h> using namespace std; int main(){int n,m,x,y,sumx0,sumy0;cin>>n>>m;for(int i1;i<n;i){cin>>x>>y;sumxx,sumyy;}for(int i1;i<m;i){cin>>x>&…

中央网信办等四部门发布《互联网政务应用安全管理规定》

互联网政务应用安全管理规定 &#xff08;2024年2月19日中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部制定 2024年5月15日发布&#xff09; 第一章 总则 第一条 为保障互联网政务应用安全&#xff0c;根据《中华人民共和国网络安全法…

总线带宽(总线系统的数据传送速率)

定义 总线上每秒钟传输的最大字节数或比特数 表示方法 通常使用“比特率”来表示&#xff0c;单位为比特每秒&#xff08;bps&#xff0c;b/s&#xff09;。 计算公式 总线带宽总线宽度/传输周期 其中&#xff0c;总线宽度是指数据总线的位数&#xff08;单位&#xff1a…

LAMP平台的构建

静态网站:单纯使用HTML语言进行书写&#xff0c;不适用数据库服务&#xff0c;浏览器可以直接识别 动态网站:利用专业开发语言(PHP/python)进行书写, 浏览器不能直接识别&#xff0c;需要结合相应的解释器程序&#xff0c;必须使用数据库服务 组成: Linux Apache(httpd) M…

Unity | spine资源动态化管理

目录 一、收集SkeletonDataAsset 二、制作预制体 三、打AB包 四、执行 五、加载AB包并保存到本地 1.UnityWebRequest 2.www下载并保存到本地 继Unity | Spine动画动态加载 之后,本文进一步介绍自动获取Assets中的spine资源,并制作成预制体,Editor下一键打成A…

B站广告推广引流哪里能做?

哔哩哔哩&#xff08;B站&#xff09;作为国内领先的年轻人文化社区与视频平台&#xff0c;其独特的二次元文化氛围和高度活跃的用户群体&#xff0c;成为了众多品牌寻求突破、触达年轻消费群体的理想阵地。在这样一个充满活力但又竞争激烈的平台上有效推广&#xff0c;吸引并留…

Java 17的新特性有哪些?

Java 17是Java编程语言的最新版本&#xff0c;于2021年9月14日发布。以下是Java 17的一些新特性&#xff1a; Sealed类和接口&#xff1a;Sealed类和接口限制了继承和实现的范围&#xff0c;在编译时提供更强的封装性。 Pattern匹配&#xff1a;Pattern匹配简化了对实例进行类…