OpenHarmony 实现屏幕横竖屏

前言

OpenHarmony源码版本:4.0release

开发板:DAYU / rk3568

一、修改“abilities”中的“orientation”实现横竖屏

当我们应用的Alility继承的是UIAbility时,对应的module.json5中的属性是abilities(标识当前Module中UIAbility的配置信息,只对当前UIAbility生效),这时只需要修改其中的orientation属性就行。

unspecified:未指定方向,由系统自动判断显示方向。
landscape:横屏。
portrait:竖屏。
landscape_inverted:反向横屏。
portrait_inverted:反向竖屏。
auto_rotation:随传感器旋转。
auto_rotation_landscape:传感器横屏旋转,包括横屏和反向横屏。
auto_rotation_portrait:传感器竖屏旋转,包括竖屏和反向竖屏。
auto_rotation_restricted:传感器开关打开,方向可随传感器旋转。
auto_rotation_landscape_restricted:传感器开关打开,方向可随传感器旋转为横屏, 包括横屏和反向横屏。
auto_rotation_portrait_restricted:传感器开关打开,方向随可传感器旋转为竖屏, 包括横屏和反向横屏。
locked:传感器开关关闭,方向锁定。

二、Window的setPreferredOrientation()方法实现横竖屏

当我们应用的Ability继承的是ExtensionAbility时,对应的module.json5中的属性是extensionAbilities(标识当前Module中ExtensionAbility的配置信息,只对当前ExtensionAbility生效。),这时你会想会不会像abilities一样也存在orientation属性,但是通过查找发现是不存在的,换成通过setPreferredOrientation方法来实现

首先通过Window.createWindow方法创建窗口获取到Window对象,

然后调用Window.setPreferredOrientation()方法实现横竖屏切换,例:

window.setPreferredOrientation(Window.Orientation.AUTO_ROTATION_LANDSCAPE);
UNSPECIFIED0表示未定义方向模式,由系统判定。
PORTRAIT1表示竖屏显示模式。
LANDSCAPE2表示横屏显示模式。
PORTRAIT_INVERTED3表示反向竖屏显示模式。
LANDSCAPE_INVERTED4表示反向横屏显示模式。
AUTO_ROTATION5表示传感器自动旋转模式。
AUTO_ROTATION_PORTRAIT6表示传感器自动竖向旋转模式。
AUTO_ROTATION_LANDSCAPE7表示传感器自动横向旋转模式。
AUTO_ROTATION_RESTRICTED8表示受开关控制的自动旋转模式。
AUTO_ROTATION_PORTRAIT_RESTRICTED9表示受开关控制的自动竖向旋转模式。
AUTO_ROTATION_LANDSCAPE_RESTRICTED10表述受开关控制的自动横向旋转模式。
LOCKED11表示锁定模式。

三、修改系统源码属性实现横竖屏切换

上面两种方式都是针对某个应用中的Ability的,如果是像面向全部应用一次修改全部生效,只能修改系统中的配置属性了。

修改目录:foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml

修改文件display_manager_config.xml的buildInDefaultOrientation参数值为:2 (Orientation::HORIZONTAL)

UNSPECIFIED(0):未定义,由系统判断

VERTICAL(1):竖屏显示

HORIZONTAL(2):横屏显示

REVERSE_VERTICAL(3):反向竖屏显示

REVERSE_HORIZONTAL(4):反向横屏显示

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

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

相关文章

思维模型 搭便车效应

本系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。合理坐享其成。 1 搭便车效应的应用 1.1 搭便车效应在商业竞争中的应用 1 被搭便车的AT&T 在 20 世纪 80 年代,美国电信市场由美国电话电报公司(AT&T&…

实时绘画迎来大更新,本地即可部署

个人网站:https://tianfeng.space 前言 自此LCM公布以来,这一个星期在相关应用方面的更新速度nb,各种实时绘画工作流随之出现,之前还只能依赖krea内测资格使用,让我们来看看上周发生了那些事吧! 网盘&am…

【UGUI】sprite精灵的创建与编辑

如何切图(sprite editor) 有时候一张图可能包含了很多张子图,就需要在Unity 临时处理一下,切开,比如动画序列帧图集 虽然我们可以在PS里面逐个切成一样的尺寸导出多张,再放回Unity,但是不需要这…

基于ssm的疫苗预约系统(有报告)。Javaee项目。ssm项目。

演示视频: 基于ssm的疫苗预约系统(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring Spri…

汽车电子 -- 毫米波雷达

参看:自动驾驶感知——毫米波雷达 一、雷达分类 二、毫米波雷达信号频段 三、车载毫米波雷达的重要参数 常见参数 探测距离 (车辆0.5m ~ 200m 行人0.5m ~ 70m)距离向精度 (0.15 m)距离向分辨率 ( 0.5 m)测速范围…

java开发之个微机器人的开发

简要描述: 初始化通讯录列表 请求URL: http://域名地址/initAddressList 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选…

ToDesk优惠码来了,需要的不容错过

最近发现Todesk也有活动了,很多小伙伴不知道,除了中秋国庆双节,ToDesk另有专享优惠码,输入优惠码最高立减25元,即使是活动日也能折上折,不影响此优惠码的折扣力度! Todesk作为国内优良的远程控制…

idea保存时自动删除不用的import

1、File->setting 2、Editor->General->Auto Import 按照操作,即可实现!!!!!!!

如何使用Access中的窗体与数据打交道,看这篇文章就够了

Access数据库由一个或多个包含相关信息的表组成。一旦创建了这样一个空数据库,就可以遍历所有的表来填充信息。 然而,这可能会变得乏味和混乱。当你试图输入数据时,很难遵循表中数据之间的关系。访问输入窗体是一个很有价值的工具。你可以设计输入窗体,以便以逻辑格式输入…

VMware安装OpenEuler(安装界面)

本文中使用的OpenEuler版本:22.03 LTS SP2 VMware:17.0.0 一、下载镜像 根据CPU和场景,按需下载 https://www.openeuler.org/zh/download/?versionopenEuler%2022.03%20LTS%20SP2 二、初始化VmWare 三、配置操作系统 四、安装操作系统 …

【蓝桥杯】二分查找

二分查找 题目描述 输入 n n n 个不超过 1 0 9 10^9 109 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a 1 , a 2 , … , a n a_1,a_2,\dots,a_{n} a1​,a2​,…,an​,然后进行 m m m 次询问。对于每次询问,给出一…

基于SSM框架的快乐商城设计与实现

目录 第一章 前言 1 1.1 系统开发引言 1 第二章 相关开发工具介绍 1 2.1 Eclipse介绍 1 2.2 Oracle数据库 1 2.3 Tomcat服务器 2 2.4 Spring 介绍 3 2.5 SpringMVC 介绍 4 2.6 Mybatis 介绍 4 第三章 系统可行性分析 4 3.1 技术可行性分析 4 3.2 操作可行性分析 5 3.3 经济可行…