当前位置: 首页 > article >正文

【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 编译),然后将编译得到的镜像烧录到开发板。


http://www.kler.cn/a/488944.html

相关文章:

  • 【工业自动化摄像头移动机器视觉】
  • springboot+vue使用easyExcel实现导出功能
  • 【PyTorch入门】使用PyTorch构建一个简单的图像分类模型
  • 代码随想录算法训练营day27
  • Jenkins-持续集成、交付、构建、部署、测试
  • python常见绘图及代码
  • 微信小程序中 隐藏scroll-view 滚动条 网页中隐藏滚动条
  • 【Linux】模拟Shell命令行解释器
  • 【设计模式】介绍常见的设计模式
  • 【Rust自学】11.6. 控制测试运行:并行和串行(连续执行)测试
  • 鼠标过滤驱动
  • mac使用 —— win转mac的记录
  • Redis实现高效的负载均衡算法
  • 【文件I/O】 总表和分表
  • 实训云上搭建集群
  • Apache Sedona和Spark将geojson瓦片化例子
  • 电机控制的数字化升级:基于DSP和FPGA的仿真与实现
  • 前端(十三)bootstrap的基本使用
  • 实用好软-----电脑端apk应用查看签名 md5 等信息的小工具
  • Flutter插件制作、本地/远程依赖及缓存机制深入剖析(原创-附源码)
  • systemd-networkd NetworkManager 介绍
  • 武汉火影数字|探秘数字展厅:开启沉浸式科技新体验
  • 爬虫学习心得
  • 【Spring Boot 应用开发】-03 自动配置
  • @SneakyThrows 注解详解
  • RT-Thread Studio中的静态线程是什么