Android在开机的过程当中,会经历三张图片,关于静态图的修改在个人这篇文章中有介绍到:html
如今要介绍的是怎么用动画替换静态图片。开/关机的动画其实就像帧动画同样,快速播放多张图片造成的,在开/关机动画中要将这些图片打包进一个zip中,再进行适当的配置,就能够实现动画播放。ui
1、开/关机动画zip文件路径
在源码中找到这个文件:frameworks/base/cmds/bootanimation/BootAnimation.cppspa
其中有这些定义:这些宏定义就是开/关机过程当中动画文件的位置,看名字应该就知道,bootanimation.zip是开机动画,shutanimation .zip是关机动画code
#define OEM_BOOTANIMATION_FILE "/oem/media/bootanimation.zip" #define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip" #define CUSTOM_BOOTANIMATION_FILE "/custom/media/bootanimation.zip" #define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip" #define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip" #define EXIT_PROP_NAME "service.bootanim.exit" #define SYSTEM_SHUTANIMATION_FILE "/system/media/shutanimation.zip" #define CUSTOM_SHUTANIMATION_FILE "/custom/media/shutanimation.zip" #define USER_SHUTANIMATION_FILE "/data/local/shutanimation.zip"
一、新建目录part0,将须要显示的jpg拷贝进去。htm
二、新建目录part1,将须要显示的jpg拷贝进去。blog
*** ***能够根据需求添加文件夹个数图片
三、新建空文本文件desc.txt,内容以下:
1080 1920 15ip
p 1 2 part0get
p 0 2 part1
1080 1920 12 (1080,1920是分辨率,12是帧数)
p 1 2 part0(p是标识符,1表明该文件夹循环1次,2表明两次循环之间间隔2张图片的时间(例:2/15秒),part0表明要显示的文件夹)
p 0 2 part1(p是标识符,0表明无限循环,2表明两次循环之间间隔2张图片的时间(例:2/15秒),part1表明要显示的文件夹)
若是配置有更多的文件夹,则按照以上两个的例子添加配置便可
四、将这三个文件以存储方式打包成bootanimation.zip(注意:必定要以“存储”的模式打包,压缩时默认是“标准”必须改成“存储”,非存储方式没法识别)。
存储在对应目录下。例:
/system/media/bootanimation.zip
五、在该文件中添加(不必定必须在embedded.mk中,其它文件也能够,只要能够确保添加的PRODUCT_COPY_FILES能被执行到):
/build/target/product/embedded.mk
前边是源码中文件位置,后边是复制到out后文件位置
PRODUCT_COPY_FILES += \
system/media/bootanimation.zip:system/media/bootanimation.zip
一、新建目录part1,将须要显示的jpg拷贝进去。
二、新建目录part2,放入最后一张jpg
三、新建空文本文件desc.txt,内容以下:
1080 1920 9
p 1 2 part1
p 0 2 part2
1080 1920 9 (1080,1920是分辨率,9是帧数)
p 1 2 part1(p是标识符,1表明该文件夹循环1次,2表明两次循环之间间隔2张图片的时间(例:2/9秒),part1表明要显示的文件夹);
p 0 2 part2(p是标识符,0表明无限循环,2表明两次循环之间间隔2张图片的时间(例:2/9秒),part2表明要显示的文件夹)。
四、将这三个文件以存储方式打包成shutanimation.zip(注意:必定要以“存储”的模式打包,压缩时默认是“标准”必须改成“存储”,非存储方式没法识别)。
存储在对应目录下。例:
/system/media/shutanimation.zip
五、在该文件中添加(不必定必须在embedded.mk中,其它文件也能够,只要能够确保添加的PRODUCT_COPY_FILES能被执行到):
/build/target/product/embedded.mk
前边是源码中文件位置,后边是复制到out后文件位置
PRODUCT_COPY_FILES += \
system/media/shutanimation.zip:system/media/shutanimation.zipp
而后从新编译源码,刷机便可