Android自定义开机和关机动画

Android自定义开机和关机动画

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

        Android开机图片替换动画

        

        如今要介绍的是怎么用动画替换静态图片。开/关机的动画其实就像帧动画同样,快速播放多张图片造成的,在开/关机动画中要将这些图片打包进一个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"

 

2、开机动画


    一、新建目录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

 

3、关机动画


    一、新建目录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

 

而后从新编译源码,刷机便可

相关文章
相关标签/搜索