【RK3568笔记】Android修改开机动画

概述

Android 的开机动画是由一系列连续的 PNG 图片作为帧组成的动画形式,不是一张 GIF 图片。将各帧 PNG 图片以压缩方式进行保存(压缩方式要求是存储压缩),并将保存的文件名命名为 bootanimation.zip,这个 bootanimation.zip 压缩文件就是开机动画文件。


制作动画

首先准备一组连续的PNG 图片(可以将动画视频的每一帧导出生成一组连续的PNG 图片,譬如通过格式工厂软件就可以进行导出;当然也可以自己手动制作每一帧对应的 PNG 图片),将使用这组图片做成开机动画。

将这组连续的 PNG 图片按照显示顺序以数字形式进行命名,如果是 100 张 PNG 图片,则可将这组图片命名为 0001.png-0100.png,当然也可以是 001.png-100.png,只需保证文件名对应的数字个数相同即可!

Windows 下创建一个名为 bootanimation 的文件夹,并在该目录下创建一个或多个命名为 partN(N 表示数字,譬如 0、1、2、3 等)的目录,开机动画可以分为多个阶段,每个 partN 目录用于存放不同阶段所要播放的 PNG 图片,每个 partN 目录下都可以存放一部分图片(一张或多张图片):

第一阶段动画图片存放在 part0 目录;
第二阶段动画图片存放在 part1 目录;
第三阶段动画图片存放在 part2 目录;

等以此类推!

如果只是循环播放所有的图片,只需创建 part0 即可;如果需要先播放一部分图片,然后再循环播放另一部分图片,也就是说有两个阶段;那么这就需要创建 part0 和 part1 两个文件夹,part0 目录存放第一阶段需要播放的图片,part1 目录用于存放第二阶段需要播放的图片。

假设我们要制作包含两个阶段的开机动画,首先创建 part0 和 part1 两个目录,如下所示:

在这里插入图片描述
将第一阶段需要播放的图片放入 part0 目录,如下:

在这里插入图片描述

然后将第二阶段需要播放的图片放入 part1 目录,如下:

在这里插入图片描述
接下来我们需要编写一个 desc.txt 文件,该文件称为动画属性描述文件。desc.txt 文件用于设置动画像素大小、帧数、循环次数以及各阶段对应的文件夹等信息。desc.txt 文件的内容如下所示:

在这里插入图片描述
480、800这两个数字代表图片的像素宽度和高度;
25 表示帧数,也就是 1 秒钟播放图片的数量;25也就表示一秒钟播放25张图片;

p 1 0 part0:这行中,第一位字母 p 表示播放的意思,第二个数字 1 表示本阶段播放的次数(本阶段播放一次),也就是本阶段循环的次数;第三个数字 0 表示间隔时间,譬如在循环播放的情况下,播放完一轮后、需要间隔多少时间重新播放下一轮,单位是一个帧的持续时间,譬如 25 帧,那么一帧的持续时间就是 1 秒/25 = 40ms。最后一个参数 part0 表示本阶段播放的图片存放在 part0 目录。

p 0 10 part1:与第二行所表示的含义是相同的,第一个字母 p 表示播放的意思,第二个数字 0 表示本阶段循环的次数(0 表示本阶段无限循环);第三个数字 10 表示间隔时间;最后一个参数 part1 表示本阶段播放的图片存放在 part1 目录。

同时选中 part0、part1 以及 desc.txt,然后鼠标右键单击选择“添加到压缩文件”,压缩方式选择“存储”,如下所示:

在这里插入图片描述

产品配置

将制作的 bootanimation.zip 文件拷贝到 RK3568 Android 源码 device/rockchip/common/bootshutdown/目录下,并且将 bootanimation.zip 文件的权限设置为 755,如下:

在这里插入图片描述

接下来打开板级配置文件 device/rockchip/rk356x/rk3568_r/BoardConfig.mk,添加下面这一行内容:

在这里插入图片描述

修改完成后保存退出,然后重新编译 Android 源码(建议先执行“make installclean”命令后再 make 编译),然后将编译得到的镜像烧录到开发板。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

复合机器人助力手机壳cnc加工向自动化升级

在当今竞争激烈的制造业领域,如何提高生产效率、降低成本、提升产品质量,成为众多企业面临的关键挑战。尤其是在手机壳 CNC 加工这一细分行业,随着市场需求的持续增长,对生产效能的要求愈发严苛。而复合机器人的出现,正…

HTML——75. 内联框架

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>内联框架</title><style type"text/css">iframe{width: 100%;height: 500px;}</style></head><body><!--iframe元素会创建包含…

(七)人工智能进阶之人脸识别:从刷脸支付到智能安防的奥秘,小白都可以入手的MTCNN+Arcface网络

零、开篇趣谈 还记得第一次用支付宝"刷脸"时的新奇感吗&#xff1f;或者被抖音的人脸特效逗乐的瞬间&#xff1f;这些有趣的应用背后&#xff0c;其实藏着一个精妙的AI世界。今天&#xff0c;就让我们开启一段奇妙的人脸识别技术探索之旅吧&#xff01; 一、人脸识…

1. 使用springboot做一个音乐播放器软件项目【前期规划】

背景&#xff1a; 现在大部分音乐软件都是要冲会员才可以无限常听的。对于喜欢听音乐的小伙伴&#xff0c;资金又比较紧张&#xff0c;是那么的不友好。作为程序员的我&#xff0c;也是喜欢听着歌&#xff0c;敲着代码。 最近就想做一个音乐播放器的软件&#xff0c;在内网中使…

STM32-笔记37-吸烟室管控系统项目

一、项目需求 1. 使用 mq-2 获取环境烟雾值&#xff0c;并显示在 LCD1602 上&#xff1b; 2. 按键修改阈值&#xff0c;并显示在 LCD1602 上&#xff1b; 3. 烟雾值超过阈值时&#xff0c;蜂鸣器长响&#xff0c;风扇打开&#xff1b;烟雾值小于阈值时&#xff0c;蜂鸣器不响…

【Linux】记录一下考RHCE的学习过程(七)

年底了&#xff0c;公司接的北京地铁轨道交通的项目做不完了&#xff0c;一百多列地铁的设备都得调&#xff0c;派我出差了几周&#xff0c;这几天才回来&#xff0c;出差累死了实在是没办法更新。&#xff08;YOASOBI的二开票还没抢到ToT&#xff0c;哭死&#xff0c;看看回滚…

[读书日志]从零开始学习Chisel 第六篇:Scala面向对象编程——特质(敏捷硬件开发语言Chisel与数字系统设计)

3.4特质 3.4.1什么是特质 特质使用trait开头&#xff0c;它与单例对象很像&#xff0c;两者都不能有输入参数&#xff0c;但单例对象是具体的&#xff0c;特质是抽象的。两者都不能用new实例化&#xff0c;类&#xff0c;单例对象&#xff0c;特质三者内部都可以包含字段和方…

VuePress2配置unocss的闭坑指南

文章目录 1. 安装依赖&#xff1a;准备魔法材料2. 检查依赖版本一定要一致&#xff1a;确保魔法配方准确无误3. 新建uno.config.js&#xff1a;编写咒语书4. 配置config.js和client.js&#xff1a;完成仪式 1. 安装依赖&#xff1a;准备魔法材料 在开始我们的前端魔法之前&…

游戏引擎学习第77天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度&#xff0c;进行调试昨天代码的问题&#xff0c;主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏&#xff0c;但我们希望能够处理多层的房间&#xff0c;玩家…

uniapp结合movable-area与movable-view实现拖拽功能2

前言 上篇我们写了&#xff0c;固定高度的拖拽&#xff0c;这篇我们将进行不固定高度的拖拽模块编写完成。 开始 一、初始化 我们在list数组里面增加一个data的动态数组&#xff0c;这样可以动态改变元素的高度。 当前元素y 上一个元素的高度 <template><view s…

ubuntu为Docker配置代理

终端代理 我们平常在ubuntu终端中使用curl或git命令时&#xff0c;往往会很慢。 所以&#xff0c;首先需要给ubuntu终端环境添加代理。 查看自身那个软件的端口号&#xff0c;我这里是7890。 sudo gedit ~/.bashrcexport http_proxyhttp://localhost:7890 export https_pr…

【Uniapp-Vue3】v-if条件渲染及v-show的选择对比

如果我们想让元素根据响应式变量的值进行显示或隐藏可以使用v-if或v-show 一、v-show 另一种控制显示的方法就是使用v-show&#xff0c;使用方法和v-if一样&#xff0c;为true显示&#xff0c;为false则不显示。 二、v-if v-if除了可以像v-show一样单独使用外&#xff0c;还…

wujie无界微前端框架初使用

先说一下项目需求&#xff1a;将单独的四套系统的登录操作统一放在一个入口页面进行登录&#xff0c;所有系统都使用的是vue3&#xff0c;&#xff08;不要问我为啥会这样设计&#xff0c;产品说的客户要求&#xff09; 1.主系统下载wujie 我全套都是vue3&#xff0c;所以直接…

C语言 数组编程练习

1.将数组A的内容和数组B中的内容进行交换。&#xff08;数组一样大&#xff09; 2.创建一个整形数组&#xff0c;完成对数组的操作 实现函数Init()初始化数组全为0 实现print()打印数组的每个元素 实现reverse()函数完成数组元素的逆置 //2.创建一个整形数组&#xff0c;完…

【three.js】模型-几何体Geometry,材质Material

模型 在现实开发中&#xff0c;有时除了需要用代码创建模型之外&#xff0c;多数场景需要加载设计师提供的使用设计软件导出的模型。此时就需要使用模型加载器去加载模型&#xff0c;不同格式的模型需要引入对应的模型加载器&#xff0c;虽然加载器不同&#xff0c;但是使用方式…

MySQL和Hive中的行转列、列转行

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 MySQL1.行转列2.列转行 Hive1.行转列2.列转行(1)侧窗(2)union MySQL 1.行转列 把多行转成列。直接group&#xff0c;sum(if()) 2.列转行 Hive 1.行转列 select name,sum(if(kmshuxu…

unity学习8:unity的基础操作 和对应shortcut

目录 1 unity的基础操作的工具&#xff0c;就在scene边上 1.1 对应shortcut快捷键 2 物体的重置/ 坐标归到0附近 3 F&#xff1a;快速找到当前gameobject 4 Q&#xff1a;小手和眼睛&#xff0c;在场景中移动 5 W&#xff1a;十字箭头&#xff0c;移动gameobject 6 …

对话|全年HUD前装将超330万台,疆程技术瞄准人机交互“第一屏”

2024年&#xff0c;在高阶智驾进入快速上车的同时&#xff0c;座舱人机交互也在迎来新的增长点。Chat GPT、AR-HUD、车载投影等新配置都在带来新增量机会。 高工智能汽车研究院监测数据显示&#xff0c;2024年1-10月&#xff0c;中国市场&#xff08;不含进出口&#xff09;乘用…

Openwrt @ rk3568平台 固件编译实践(二)- ledeWRT版本

目录 ledeWRT介绍固件编译下载代码修改feed源更新并安装编译第三方软件包制作用于eMMC烧写的rootfs基于lede发行版验证烧写rk3568.img, LEDE wrt启动成功refhttps://blog.csdn.net/zc21463071/article/details/106751361介绍rk3568平台下, lede 大神版 openwrt固件的下载、编译…

【Unity3D】Text文本文字掉落效果

相关技术&#xff1a;Text、TextMesh、Rigidbody&#xff08;刚体&#xff09;、BoxCollider&#xff08;碰撞体&#xff09;、TextGenerator、文本网格、文字网格 原理&#xff1a;使用UGUI Text获取其文字的每个字符网格坐标&#xff0c;转世界坐标生成对应的3D文本(TextMesh…