OpenHarmony关于修改系统横屏导致启动视频显示不全问题解决

文章讲述了作者在使用OpenHarmony4.0release在DAYU/rk3568开发板上遇到启动视频横屏显示不全的问题,原因在于main.cpp中读取的屏幕宽高值为竖屏。作者提供了两种修改方案:一是调整modeinfo获取高度的时机,二是根据屏幕方向动态调整宽高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

OpenHarmony源码版本:4.0release

开发板:DAYU / rk3568

前段时间写的设置OpenHarmony启动视频,在竖屏状态下是正常的,但是横屏状态下显示不全。

链接直达:OpenHarmony 设备启动Logo和启动视频替换指南-CSDN博客

一、原因分析

系统源码中,系统(main.cpp)在读取屏幕宽高时,所读取到的宽高还是竖屏的宽高值:720*1280。(猜测可能是modeinfo获取高度比display_manager_config.xml的时机要早,C代码水平有限,如果有大神对读取时机有了解可以给解释下)

main.cpp代码目录:源码目录下  /foundation/graphic/graphic_2d/frameworks/bootanimation/src

二、修改C代码

通过原因分析后,我们知道横屏状态下读取到的宽高仍然是720*1280,要想显示正常需要将宽高调换,修改如下:

bootAnimation.Run(defaultId, 1280, 720);

这里的修改方法比较暴力,直接将宽高写死了。比较好的方式是

第1方案:修改源码,使modeinfo获取高度时机要晚于display_manager_config.xml的配置。

第2方案:先获取屏幕的方向,如果是竖屏方向正常设置,如果是竖屏,将宽高值对换下。

(以上方案都是自己的猜想,C语言能力有限,只能简单修改下代码,如果有大神知道怎么修改,可以在评论区回复下,感谢!!)

修改前效果:

修改后效果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风起了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值