鸿蒙NEXT实战开发:【截屏】

展示全屏截图和屏幕局部截图。通过[screenshot]模块实现屏幕截图 ,通过[window]模块实现隐私窗口切换,通过[display]模块查询当前隐私窗口。

效果预览

全屏截图局部截图选择区域局部截图

使用说明:

  1. 点击右上角图标打开弹窗,选择截屏,展示全屏截图;选择局部截屏,选择截屏区域,点击右下角完成,展示局部截屏;
  2. 点击滑块切换窗口隐私模式,隐私模式下截屏会弹出提示,拒绝截屏。

具体实现

本示例通过screenshot接口实现屏幕截图 ,通过window接口实现隐私窗口切换,通过display接口查询当前隐私窗口。

  • 源码链接:[Screenshot.ets]
/** Copyright (c) 2022 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/import screenshot from '@ohos.screenshot'import { Logger } from './Logger'import { getCurrentWindow } from './WindowPrivacy'// 屏幕截图 默认参数screenshotOptions为空时 截全屏export function getScreenshot(screenshotOption = {}) {return screenshot.save(screenshotOption)}// 设置全屏展示 isFullScreen: booleanexport function setFullScreen(context: Context, isFullScreen: boolean) {getCurrentWindow(context).then(res => {res.setFullScreen(isFullScreen, (err) => {if (err.code) {Logger.error('failed set full-screen mode cause: ' + JSON.stringify(err))return}Logger.info('success set full-screen mode')})})}
  • [WindowPrivacy.ets]
/** Copyright (c) 2022 Huawei Device Co., Ltd.* Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/import window from '@ohos.window'import display from '@ohos.display'import { ResponseData } from '../models/ResponseData'import { Logger } from './Logger'// 获取当前窗口export function getCurrentWindow(context: Context) {return window.getTopWindow(context)}// 判断隐私窗口export function hasPrivate(): ResponseData {let currentDisplay = nulltry {currentDisplay = display.getDefaultDisplaySync()} catch (exception) {return { status: 'failed', errorMessage: JSON.stringify(exception) }}if (currentDisplay === null) {return { status: 'failed', errorMessage: 'get current display failed' }}let ret = undefinedtry {ret = display.hasPrivateWindow(currentDisplay.id)} catch (exception) {return { status: 'failed', errorMessage: JSON.stringify(exception) }}if (ret === undefined) {return { status: 'failed', errorMessage: 'ret is undefined' }}return ret ? { status: 'success', errorMessage: '', result: true } :{ status: 'success', errorMessage: '', result: false }}// 设置隐私窗口export function setWindowPrivacyMode(context: Context, windowPrivacyMode: boolean) {let currentWindow = nullgetCurrentWindow(context).then(res => {currentWindow = restry {currentWindow.setWindowPrivacyMode(windowPrivacyMode, (err) => {if (err.code) {Logger.error('set window privacy mode failed cause: ' + JSON.stringify(err))return}Logger.info(`set window privacy mode success ${windowPrivacyMode}`)})} catch (exception) {Logger.info('set window mode failed cause: ' + JSON.stringify(exception))}})}

鸿蒙OpenHarmony知识已更新←前往

062b7e9f99042d0461e287c5c0ee8749.png

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

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

相关文章

江苏某机场多座超高端智慧公厕上线

作为行业信息化程度最高的智慧机场综合管理系统,能为旅客、航空公司以及机场自身的业务管理提供及时、准确、系统、完整的信息服务,达到信息高度统一、共享、调度严密、管理先进和服务优质的目的。而其中的智慧卫生间建设,更是提升机场旅客服…

企业实施了MES管理系统,为什么还要做数据采集

随着信息技术的迅猛发展,企业对于生产管理的精细化、智能化需求日益增长。MES管理系统作为连接企业计划层与控制层的重要桥梁,已经成为现代制造业不可或缺的核心系统。然而,尽管企业实施了MES管理系统,数据采集工作仍然不可或缺。…

为什么最近黄金回收如此火爆?

龙行龘龘!龙年不仅买金热,卖金也大热。近来,黄金回收行业异军突起,成为了市场上的热门话题。无论是街头巷尾的小店,还是网络上的各大平台,黄金回收的广告和宣传都屡见不鲜。那么,为什么最近黄金…

Prometheus Kube-Proxy endpoint connection refused

问题 Kube-Proxy endpoint connection refused 解决方法&#xff1a; $ kubectl edit cm/kube-proxy -n kube-system ## Change frommetricsBindAddress: 127.0.0.1:10249 ### <--- Too secure ## Change tometricsBindAddress: 0.0.0.0:10249 $ kubectl delete pod -l …

python代码性能分析

基准测试可以发现程序变慢了&#xff0c;那么是因为什么原因导致性能变慢的&#xff0c;需要进一步做代码性能分析。python同样提供了性能分析工具。 cProfile cProfile是python默认的性能分析器&#xff0c;他只测量CPU时间&#xff0c;并不关心内存消耗和其他与内存相关联的…

操作教程|使用MeterSphere对恒生UFX系统进行压力测试

恒生UFX&#xff08;United Finance Exchange&#xff0c;统一金融交换&#xff09;系统&#xff08;以下简称为“UFX系统”&#xff09;&#xff0c;是一款帮助证券公司统一管理外部接入客户的系统&#xff0c;该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类…

【实战】K8S集群部署nacos并接入Springcloud项目容器化运维

文章目录 前言Nacos集群搭建Spring cloud配置nacos将Springcloud项目部署在k8s写在最后 前言 相信很多同学都开发过以微服务为架构的系统&#xff0c;开发微服务必不可少要使用注册中心&#xff0c;比如nacos\consul等等。当然在自动化运维流行的今天&#xff0c;我们也会将注…

2024公共管理、工商管理和贸易经济国际学术会议(PABATE2024)

2024公共管理、工商管理和贸易经济国际学术会议(PABATE2024) 一、【会议简介】 2024公共管理、工商管理和贸易经济国际学术会议&#xff08;PABATE2024&#xff09;将于2024年在郑州举行。该会议旨在为公共管理、工商管理和贸易经济领域的学者和从业人员提供一个交流和分享的…

Day22:安全开发-PHP应用留言板功能超全局变量数据库操作第三方插件引用

目录 开发环境 数据导入-mysql架构&库表列 数据库操作-mysqli函数&增删改查 数据接收输出-html混编&超全局变量 第三方插件引用-js传参&函数对象调用 完整源码 思维导图 PHP知识点&#xff1a; 功能&#xff1a;新闻列表&#xff0c;会员中心&#xff0…

设计模式之备忘录模式

备忘录模式&#xff08;Memento&#xff09; 定义 在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。 使用场景 主要角色 发起人 Originator 需要备份的对象看管人 Caretaker 保存备份的容器备忘录 Memento 备份对象 类图…

API(接口) | 软件组件之间信息交互的“桥梁”

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要从 API 的定义、包含、用途和其他方面来简单地介绍 API&#xff08;接口&#xff09; ——软件组件之间信息交互的“桥梁”。 目录 一、什么是 API&#xff1f; 二、 API 中所包含哪些&#xff1f; 补充 三、API 可…

C盘中的休眠文件hiberfil.sys如何删除?

电脑休眠指整机将完全停止供电&#xff0c;而将当前处于运行状态的数据保存在硬盘中&#xff0c;下次启动的时候可以根据保存的休眠文件快速启动&#xff0c;还原上一次的电脑状态。 Win10的系统休眠文件叫作hiberfil.sys&#xff0c;它是系统休眠时临时保存的文件&#xff0c…

mac vs code 文件滑到底很多空白的解决办法

ref&#xff1a;https://stackoverflow.com/questions/1747282/how-to-make-visual-studio-editor-stop-scrolling-past-bottom-of-a-file/40588828#40588828 设置、user settings: 加入&#xff1a;"editor.scrollBeyondLastLine": false

oracle linux7.9(centos7.9)安装nvidia GPU显卡驱动

一.业务场景 公司服务器配置了nvidia GPU显卡&#xff0c;安装的是oracle linux7.9操作系统&#xff0c;以下是安装GPU显卡驱动的操作。 二.GPU显卡驱动的前安装步骤 1.安装前的依赖软件的安装 yum -y install epel-release kernel-devel dkms gcc备注&#xff1a;利用unam…

自己优化重写了一个定时批量自动预约茅台的系统,每天帮我全家自动预约

自己优化重写了一个定时批量自动预约茅台的系统&#xff0c;每天帮我全家自动预约&#xff0c;预约结果通过邮件推送给我&#xff0c;每天手机能收到预约结果 这里写一下思路&#xff1a; 我并不是自己重头写了这个软件&#xff0c;只是基于开源系统优化了这个软件个人使用&am…

四信全球化拓展再启新篇!LoRa传感器与云平台领航智能感知时代

随着科技浪潮的不断推进&#xff0c;物联网已逐渐融入我们的生活。刚刚结束的MWC24盛会上&#xff0c;四信带来了一系列前沿技术成果&#xff0c;不仅将5G技术成功扩展至当前市场主流类型的终端&#xff0c;更携手联通、ASR等业界巨头&#xff0c;在连接、5G RedCap、AI、LoRa以…

SpringBoot整合【RocketMQ】

目录 1.POM文件添加依赖及yml配置 2.RocketmqUtil 3.生产者&#xff08;异步发送示例&#xff09; 4.消费者 5.测试 1.POM文件添加依赖及yml配置 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter&l…

【安装教程】安装tensorflow-gpu版本

【安装教程】安装tensorflow-gpu版本 NOTE:准备工作TensorFlow安装1、 确定TensorFlow版本2、使用pip直接安装3、输入安装指令 TensorFlow安装后测试 NOTE: 如果不是首次安装tensorflow&#xff0c;卸载TensorFlow相关的内容&#xff0c;包括依赖的包&#xff08;tensorflow-e…

光线追踪10 - Dielectrics( 电介质 )

水、玻璃和钻石等透明物质都属于电介质。当光线射入这些物质时&#xff0c;会分为反射光线和折射&#xff08;透射&#xff09;光线。我们将通过随机选择反射或折射来处理这一现象&#xff0c;每次相互作用只生成一条散射光线。11.1 Refraction 最难调试的部分是折射光线。通常…

铅酸废电池回收螯合树脂CH-90除镉系统

项目名称 某再生资源公司铅酸废电池回收除镉项目 工艺选择 化学沉淀系统过滤系统螯合树脂深度除镉系统 工艺原理 镉离子沉淀后进入螯合树脂除镉树脂 项目背景 铅酸蓄电池作为广泛应用的化学电源&#xff0c;凭借其电压稳定性、优异的功率性能&#xff0c;以及高性价比等…