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

news2024/11/26 6:48:35

 屏幕

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

说明:
开发前请熟悉鸿蒙开发指导文档: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.coloradmin.cn/o/1708733.html

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

相关文章

mysql实战——mysql主从复制管理

一、常见的管理操作 1、查看主库状态 show master status 2、查看从库复制的状态 show slave status 3、在主库上查看从库ip和端口信息 show processlist show slave hosts 4、reset slave、reset master、reset slave all 1、reset master 该命令会执行以下操作&#xff…

openLayers加载wms图层并定位到该图层

openLayers定位到wms图层 我们的wms是加载geoserver发布的服务&#xff0c;wms加载的图层是没法通过layer.getSource().getExtent()来获取到extents&#xff08;边界&#xff09;的&#xff1b;实现思路是通过postgis的函数(st_extent(geom))来获取extents; 返回前端后格式化一…

Spring 对 Junit4,Junit5 的支持上的运用

1. Spring 对 Junit4,Junit5 的支持上的运用 文章目录 1. Spring 对 Junit4,Junit5 的支持上的运用每博一文案2. Spring对Junit4 的支持3. Spring对Junit5的支持4. 总结&#xff1a;5. 最后&#xff1a; 每博一文案 关于理想主义&#xff0c;在知乎上看到一句话&#xff1a;“…

使用js实用工具库lodash做对象的深拷贝

const lodash require(lodash)let obj {user: {name: xutongbao}}let objCopy lodash.cloneDeep(obj)objCopy.user.name xuconsole.log(obj)console.log(objCopy)https://www.lodashjs.com/ 人工智能学习网站 https://chat.xutongbao.top 参考链接&#xff1a; https://…

Unity实现首行缩进两个字符

效果 在Unity中如果想实现首行缩进两个字符&#xff0c;你会发现按空格是没法实现的。 实现原理&#xff1a;用空白的透明的字替代原来的位置。 代码&#xff1a; <color#FFFFFF00>XXX</color> 赶紧去试试吧&#xff01;

速看!!!24上软考系构综合知识真题回忆,考点已更新

2024上半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的系统架构设计师真题及答案&#xff0c;总共30道题。 上半年考试的宝子们可以对答案预估分数&#xff01;准备下半年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#x…

Talken - 语音命令系统

Talken - 语音命令系统 通过集成最先进的语音命令系统 Talken,释放游戏的全部潜力。 借助 Talken,您可以让玩家通过语音命令控制动作,从而重新定义游戏体验。 观看角色移动并对语音指令做出实时反应,模糊游戏与现实之间的界限。 主要特征: 🗣️ 语音驱动的游戏玩法:…

C++容器之位集(std::bitset)

目录 1 概述2 使用实例3 接口使用3.1 constructor3.2 count_and_size3.3 test3.4 any3.5 none3.6 all3.7 set3.8 reset3.9 filp3.10 to_string3.11 to_ulong3.12 to_ullong3.13 operators1 概述 位集存储位(只有两个可能值的元素:0或1,true或false,…)。   该类模拟bool…

开源与闭源:AI模型发展的两条路径

目录 前言1 数据隐私保护与用户数据安全1.1 开源大模型的透明性与挑战1.2 闭源大模型的控制与责任 2 商业应用的优劣比较2.1 开源大模型的灵活性与创新2.2 闭源大模型的可靠性与服务质量 3 社区参与与合作的差异3.1 开源大模型的社区驱动与协作3.2 闭源大模型的企业主导与保密性…

[nextjs]推荐几个很好看的模板网站

最近在做网站,折腾了 vue 框架,然后发现了 nextjs 框架,感觉这个做出来的网站配色很好看,然后又开始研究这个 网站配色好看是因为用的 tailwindcss,找网站过程中,发现了几个很好看的模板网站,在这里推荐下,或许你也能用得上 推荐第一个网站是: https://tailspark.co/ 有组件,也…

IP协议说明

文章目录 前言一、IP协议的简介二、IP数据报1.IP 数据报结构2.IP 数据报的分片解析3.IP 数据报的分片重装 三、IP 数据报的输出四、IP 数据报的输入 前言 IP 指网际互连协议&#xff0c; Internet Protocol 的缩写&#xff0c;是 TCP/IP 体系中的网络层协议。设计 IP 的目的是…

旺店通与金蝶云星空 就应该这样集成打通

在当今数字化商业环境中&#xff0c;企业需要高效、灵活的系统来支持其业务运营。旺店通和金蝶云星空作为两个领先的企业管理解决方案&#xff0c;它们的集成能够为企业带来无缝的业务流程和数据一致性。本文将详细介绍旺店通与金蝶云星空的全场景集成方案&#xff0c;包括主数…

vue2的方法与监听

vue2的方法 不可以使用箭头函数 <template> <div><div>{{sum2()}}</div><button click"add">add</button> </div></template><script> export default {data(){return{name:"张三",num:20,num2:3…

Py列表(list)

目录 正向索引&#xff1a; 反向索引&#xff1a; 嵌套列表&#xff1a; 修改列表中的值 列表常用的方法 实例 练习&#xff1a; 正向索引&#xff1a; 从0开始&#xff0c;依次递增。第一个元素的索引为0&#xff0c;第二个元素的索引为1&#xff0c;依此类推。 列表的下标…

代码文本编辑器-小白教程(Sublime text, Notepad++ Acode下载安装与使用)

代码文本编辑器-小白教程&#xff08;Sublime text, Notepad Acode下载安装与使用&#xff09; 1. Windows平台和Linux平台1.1 Sublime text1.2 Notepad 2. 安卓平台 Acode参考资料 1. Windows平台和Linux平台 1.1 Sublime text 一、安装教程 1、打开Sublime Text官网下载安…

C# 泛型函数

1.非约束 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace MyGeneirc {public class GeneircMethod{/// <summary>/// 泛型方法解决&#xff0c;一个方法&#xff0c;满足不同参数类型…

08、SpringBoot 源码分析 - 自动配置深度分析一

SpringBoot 源码分析 - 自动配置深度分析一 refresh和自动配置大致流程如何自动配置SpringBootApplication注解EnableAutoConfiguration注解AutoConfigurationImportSelector自动配置导入选择器DeferredImportSelectorHandler的handleDeferredImportSelectorGroupingHandler的r…

NSSCTF | [SWPUCTF 2021 新生赛]no_wakeup

打开题目后&#xff0c;点击三个&#xff1f;&#xff0c;发现是一个php序列化脚本 <?phpheader("Content-type:text/html;charsetutf-8"); error_reporting(0); show_source("class.php");class HaHaHa{public $admin;public $passwd;public function…

互联网应用主流框架整合之数据库事务管理

在互联网系统中同时运行着成千上百个线程是十分常见的事情&#xff0c;尤其当一个热门出现时&#xff0c;用户几乎同时打开手机、电脑、平板灯设备进行访问&#xff0c;这样就会导致数据库处在一个多事务访问的环境中&#xff0c;从而引发数据丢失或者数据不一致的现象&#xf…

2024.05.28学习记录

1. 小林coding 计网复习 2.代码随想录刷题. 图论.和复习数组.链表 3.rosebush完成select组件