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

news/2024/11/20 4:40:44/

前言

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语言能力有限,只能简单修改下代码,如果有大神知道怎么修改,可以在评论区回复下,感谢!!)

修改前效果:

修改后效果:


http://www.ppmy.cn/news/1271515.html

相关文章

Python卡尔曼滤波器OpenCV跟踪和预测物体的轨迹

模拟简单物体二维运动和预测位置 预测数学式 想象一下你正坐在一辆汽车里,在雾中行驶。 你几乎看不到路,但你有一个 GPS 系统可以告诉你你的速度和位置。 问题是,这个 GPS 并不完美; 它有时会产生噪音或不准确的读数。 您如何知…

嵌入式开发、C++后端开发、C++音视频开发怎么选择?

嵌入式开发、C后端开发和C音视频开发的选择问题 近年来,随着互联网和物联网的快速发展,嵌入式开发、C后端开发和C音视频开发等职业领域也逐渐受到广泛关注。 对于有志于从事这些领域的人来说,如何做出选择呢?下面将从前景、薪酬和…

【vue】正则表达式限制input的输入:

文章目录 1、只能输入大小写字母、数字、下划线:/[^\w_]/g2、只能输入小写字母、数字、下划线:/[^a-z0-9_]/g3、只能输入数字和点:/[^\d.]/g4、只能输入小写字母、数字、下划线:/[^\u4e00-\u9fa5]/g5、只能输入数字:/\…

终端安全管理软件安装详细攻略来了

随着信息技术的不断发展,终端安全管理软件在企业和组织中发挥着越来越重要的作用。为了确保终端设备的安全和稳定运行,安装终端安全管理软件是必不可少的。以下是一份终端安全管理软件的安装详细攻略,供大家参考。 一、选择合适的软件 首先&…

linux系统的u盘/mmc/sd卡等的支持热插拔和自动挂载行为

1.了解mdev mdev是busybox自带的一个简化版的udev。udev是从Linux 2.6 内核系列开始的设备文件系统(DevFS)的替代品,是 Linux 内核的设备管理器。总的来说,它取代了 devfs 和 hotplug,负责管理 /dev 中的设备节点。同时…

HarmonyOS(十三)——详解自定义组件的生命周期

前言 自定义组件的生命周期回调函数用于通知用户该自定义组件的生命周期,这些回调函数是私有的,在运行时由开发框架在特定的时间进行调用,不能从应用程序中手动调用这些回调函数。 下图展示的是被Entry装饰的组件生命周期: 今…

AtCoder ABC周赛2023 12/10 (Sun) D题题解

目录 原题截图: 题目大意: 主要思路: 注: 代码: 原题截图: 题目大意: 给定两个 的矩阵 和 。 你每次可以交换矩阵 的相邻两行中的所有元素或是交换两列中的所有元素。 请问要使 变换至…

Photoshop插件3D Map Generator Geo的使用记录1(版本说明、安装卸载使用和高程数据生成3D地形图的准备工作)

3D Map Generator是一款强大的地图创建和定制化工具,具有以下特点和功能: 快速创建3D地图:用户可以通过该工具快速创建出高质量的3D地图,而无需具备专业的GIS或PS技能。支持多种图层类型:3D Map Generator支持多种图层…