Android自定义开机和关机动画

Android自定义开机和关机动画

Android在开机的过程中,会经历三张图片,关于静态图的修改在我的这篇文章中有介绍到:

        Android开机图片替换

        

        现在要介绍的是怎么用动画替换静态图片。开/关机的动画其实就像帧动画一样,快速播放多张图片形成的,在开/关机动画中要将这些图片打包进一个zip中,再进行适当的配置,就可以实现动画播放。

 

一、开/关机动画zip文件路径

在源码中找到这个文件:frameworks/base/cmds/bootanimation/BootAnimation.cpp

其中有这些定义:这些宏定义就是开/关机过程中动画文件的位置,看名字应该就知道,bootanimation.zip是开机动画,shutanimation .zip是关机动画

        #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"

 

二、开机动画


    1、新建目录part0,将需要显示的jpg拷贝进去。


    2、新建目录part1,将需要显示的jpg拷贝进去。


    *** ***可以根据需求添加文件夹个数


    3、新建空文本文件desc.txt,内容如下:

        1080 1920 15

        p   1   2 part0

        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代表要显示的文件夹)

        如果配置有更多的文件夹,则按照以上两个的例子添加配置即可 


    4、将这三个文件以存储方式打包成bootanimation.zip(注意:一定要以“存储”的模式打包,压缩时默认是“标准”必须改为“存储”,非存储方式无法识别)。

        存储在对应目录下。例:

        /system/media/bootanimation.zip

    5、在该文件中添加(不一定必须在embedded.mk中,其它文件也可以,只要可以确保添加的PRODUCT_COPY_FILES能被执行到):

        /build/target/product/embedded.mk

        前边是源码中文件位置,后边是复制到out后文件位置

        PRODUCT_COPY_FILES += \

                system/media/bootanimation.zip:system/media/bootanimation.zip

 

三、关机动画


    1、新建目录part1,将需要显示的jpg拷贝进去。

    2、新建目录part2,放入最后一张jpg

    3、新建空文本文件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代表要显示的文件夹)。

    4、将这三个文件以存储方式打包成shutanimation.zip(注意:一定要以“存储”的模式打包,压缩时默认是“标准”必须改为“存储”,非存储方式无法识别)。

        存储在对应目录下。例:

        /system/media/shutanimation.zip

    5、在该文件中添加(不一定必须在embedded.mk中,其它文件也可以,只要可以确保添加的PRODUCT_COPY_FILES能被执行到):

        /build/target/product/embedded.mk

        前边是源码中文件位置,后边是复制到out后文件位置

        PRODUCT_COPY_FILES += \

                system/media/shutanimation.zip:system/media/shutanimation.zipp

 

然后重新编译源码,刷机即可

 

posted @ 2017-09-04 17:33  红嘴唇小丑  阅读(661)  评论(0编辑  收藏  举报