鸿蒙开发实践——基于原生能力的横竖屏旋转适配

OpenHarmony如何切换横竖屏? 在日常开发中,大多APP可能根据实际情况直接将APP的界面方向固定,或竖屏或横屏。但在使用过程中,我们还是会遇到横竖屏切换的功能需求,可能是通过物理重力感应触发,也有可能是用户手动触发。所以本文主要带大家了解在OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用开发的过程中,如何在Stage模型和FA模型下使用对应的接口去完成横竖屏的切换。本文中OpenHarmony版本为3.2 Beta4,API版本为9。开发板为DAYU200。 阅读详情

场景描述

目前很多应用和场景需要用到横竖屏旋转,下面列举一些目前遇到的高频问题:

  • 场景一:我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定)

  • 场景二:在一个应用内,不同的页面有不同的旋转策略;如:首页仅竖屏,详情页面允许横竖屏切换;

概念说明:

本文的旋转策略是:旋转策略是指当前页面支持的设备旋转方向。

页面方向是:页面方向是手机的页面当前的显示方向。

场景一:

我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定)

效果图:

关键步骤:

第一步:感知方向;使用sensor感知设备的真实朝向。

// 1 原始数据(3维度)
sensor.on(sensor.SensorId.GRAVITY, (data: sensor.GravityResponse) => {
let degree: number = -1;
let rotation: string = 'INVALID';
// 2 将三维的角度变二维
degree = CalDegree(data.x, data.y, data.z)
// 3 将角度转化到方向
if (degree >= 0 && (degree <= 30 || degree >= 330)) {
rotation = "ROTATION_0";
} else if (degree >= 6
【鸿蒙性能优化】横竖屏切换开发实践 实现视频播窗页面的横竖屏转换,用户可以切换到全屏播放场景。横竖屏切换示意以进入全屏为例,开发过程需要有以下关注点:1、如果有模态框,需要关闭模态框2、页面实现窗口旋转和全屏逻辑3、隐藏播控相关按钮内容进入横屏基本流程在触发旋转的按钮上,触发对应事件,并可以采用EventHub.emit发送对应事件触发相应事件。这里主要介绍进入全屏的逻辑。 阅读详情

相关推荐

鸿蒙NEXT开发【横竖屏开发实践】应用框架开发

横竖屏切换功能即实现应用内既支持竖屏显示也支持横屏显示的效果。对于应用内不同页面显示方向不同的情况,需要在应用逻辑中,动态修改窗口方向,来实现该效果,例如包含视频播放功能的应用,首页内容是采用竖屏方式,而视频详情页则采用横屏方式展示。

houxiliOH的博客 2922

HarmonyOS 开发实践——基于原生能力的横竖屏旋转适配

视频播放的过程中,用户可能在竖屏状态下,通过点击最大化按钮将视频变为横屏播放。视频播放的过程中,用户可能在竖屏状态下,通过点击最大化按钮将视频变为横屏播放。调用窗口的Orientation设置方向即可,具体的设置窗口的显示方向,属性设置参考下表;在一个应用内,不同的页面有不同的旋转策略;Q1:如何感知系统的自动旋转开关:如果是开的,app页面内适配?本文的旋转策略是:旋转策略是指当前页面支持的设备旋转方向。第三步:结合全局埋点的能力,实现不同页面的旋转适配。页面方向是:页面方向是手机的页面当前的显示方向。

liuhaojiabin的博客 654

鸿蒙(HarmonyOS)实战开发篇——基于原生能力的横竖屏旋转适配

我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定)

lc748258的博客 1478

【鸿蒙实战开发】基于原生能力的横竖屏旋转适配

我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定):在一个应用内,不同的页面有不同的旋转策略;如:首页仅竖屏,详情页面允许横竖屏切换;

HarmonyOSMN的博客 1576

鸿蒙HarmonyOS (开发进阶)横竖屏开发实践

目前在HarmonyOS系统中,窗口的旋转形态包括以下四种,窗口的状态对应真机实际状态如下:

WEZC156465的博客 1853

HarmonyOS开发实战指南:横竖屏开发实践

在开发时,部分应用需要提供全屏按钮,让用户选择开启横竖屏播放,另外我们也需要考虑系统是否开启了方向锁定,在方向锁定的情况下,用户只能通过手动横屏来实现全屏,而在方向没有锁定下,用户将设备横向的情况下,应用需要自动切换到横屏进行播放。

DMZDAMS的博客 3772

【鸿蒙开发实战 Beta5.0】基于原生能力的横竖屏旋转适配

我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定)

2401_84917132的博客 953

鸿蒙原生APP开发之横竖屏开发实践

横竖屏切换功能即实现应用内既支持竖屏显示也支持横屏显示的效果。对于应用内不同页面显示方向不同的情况,需要在应用逻辑中,动态修改窗口方向,来实现该效果,例如包含视频播放功能的应用,首页内容是采用竖屏方式,而视频详情页则采用横屏方式展示。窗口旋转策略的选择常用应用类型的横竖屏开发常见的横竖屏开发问题。

CTrup的博客 1445

HarmonyOS 实战开发 —— 基于原生能力的横竖屏旋转适配

视频播放的过程中,用户可能在竖屏状态下,通过点击最大化按钮将视频变为横屏播放。视频播放的过程中,用户可能在竖屏状态下,通过点击最大化按钮将视频变为横屏播放。调用窗口的Orientation设置方向即可,具体的设置窗口的显示方向,属性设置参考下表;在一个应用内,不同的页面有不同的旋转策略;Q1:如何感知系统的自动旋转开关:如果是开的,app页面内适配?本文的旋转策略是:旋转策略是指当前页面支持的设备旋转方向。第三步:结合全局埋点的能力,实现不同页面的旋转适配。页面方向是:页面方向是手机的页面当前的显示方向。

CTrup的博客 1078

OrCAD Capture CIS 17.4 原理图绘制

OrCAD Capture CIS 17.4 原理图绘制

qq_38960013的博客 7631

搞定8GB/s数据流:一个FPGA工程师的XDMA驱动调优实战(附避坑清单)

本文详细记录了FPGA工程师在XDMA驱动调优过程中实现8GB/s高带宽数据流的实战经验。通过优化DDR访问、中断响应、DMA映射等关键环节,解决了PCIE数据采集卡在高带宽场景下的性能瓶颈,并提供了实用的避坑清单和技术方案。

weixin_29194255的博客 201

新手必看:TwinCAT死活扫不到倍福CX5020?别慌,先检查这3个地方(附静态IP配置)

本文详细介绍了TwinCAT软件无法扫描到倍福CX5020控制器的常见问题及解决方案。从网络连通性检查、系统环境配置到静态IP设置,提供了一套完整的排查流程和优化建议,帮助新手快速解决通信问题,确保设备稳定运行。

weixin_27219587的博客 362

VH6501干扰仪的使用

触发模式方法备注External Trigger(外部触发)使用VH6501的I/O口作为触发源Frame Trigger(报文触发)设定被干扰报文的触发位置,并发送干扰位序列/报文software Trigger(软件触发)配置好干扰序列后直接发送Error Frame Trigger(错误帧触发)基于错误帧标识位为触发条件触发干扰Direction Trigger(发送方向触发)根据TX/RX发送/接收方作为触发条件Inverted Trigger(反向触发)

帮助100万人颠覆负面潜意识,实现人生蜕变,培养1万名潜意识开发导师 9047

从传感器到执行-智能家居 Agent 的感知-决策-执行闭环

本文提出了一种面向智能家居的感知型Agent架构,通过"感知-决策-执行"的闭环系统实现智能化控制。感知模块整合多源传感器数据,决策模块基于规则或机器学习模型生成控制策略,执行模块完成设备操作。系统能够实时监测环境参数和用户状态,自动调节温度、照明等设备,提升家居舒适度。该架构可扩展为多模态感知与强化学习相结合的智能系统,为智慧家居发展提供技术基础。

一键难忘的博客 1118

TC3XX - MCAL知识点(三十九):AURIX™ TC3xx 的EDSADC实现旋变解码功能(应用笔记记录)

本文总结了英飞凌应用笔记中关于EDSADC旋变解码系统的关键内容。系统通过调幅解调获取电机位置和速度信号,支持内外载波生成方案,其中内部载波方案更常用(需2个DSADC通道)。重点介绍了滤波器链配置建议(避免FIR1)、系统条件要求(如偶数积分周期)以及群延迟计算方法。特别分析了SDCAP功能对硬件延迟的补偿机制,指出温度等因素可能导致外部电路延迟变化,需通过计数器测量并通过软件调整积分器起始点来消除角度误差。文中还提供了不同硬件延迟情况下的信号处理示例。

梦想技术家 455

SAP GR(Group Reporting)合并报表内容及功能简介(五)-合并和抵消

随着合并和收购数量的显著增加,企业在全球经济中面临着诸多挑战。其中最常见的是法律实体与子公司之间缺乏透明度,导致无法以经济高效的方式对账法律实体与子公司之间的公司间交易,从而造成结算出现重大延迟。公司间匹配和对账功能允许用户在关账过程中进行早期分析,以避免公司间差异,并缩短关账时的延迟。公司间匹配和对账功能交易级别匹配和实时对账基于各种组织维度(如公司、利润中心和合并单位)的灵活建模自动差异解决。应用内通信和工作流。与公司间抵销集成。

weixin_43853754的博客 4399

【OpenClaw从入门到精通】第24篇:OpenClaw Skill商业化实战指南——从0开发付费技能,在ClawHub变现(2026实测版)

本文聚焦OpenClaw Skill商业化的全流程落地,基于2026年生态现状、公开行业报告及开发者指南,拆解付费Skill的市场机会、商业模式、技术实现、发布运营及避坑要点。核心围绕“Freemium API Backend”主流路径,通过虚拟但贴合真实场景的“金融研报复现”案例,提供从需求分析、定价设计到代码开发、ClawHub上架的完整实操方案。文中包含可直接复用的代码片段、执行结果演示及流程图解,既满足新手快速入门的需求,也为进阶开发者提供商业化落地的关键思路,帮助读者抓住AI Agent早期红利。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1083

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: 鸿蒙开发实践——基于AVCodecKit的音视频解码及二次处理播放
下一篇: 鸿蒙开发实践——基于webview的Picker拉起
猫猫码代码
博客等级 码龄6年 421粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值