美文网首页工作生活
制作Android7.1关机充电动画

制作Android7.1关机充电动画

作者: 网路元素 | 来源:发表于2019-07-01 17:56 被阅读0次

        在Android7.1系统上面,关机充电动画已不再是5.1里的几张图片,如下:

        在Android5.1的system/core/healthd/images目录下,有如下文件:

        battery_0.png

        battery_1.png

        battery_2.png

        battery_3.png

        battery_4.png

        battery_5.png

        battery_charge.png

        battery_fail.png

        capacity_text_bottom.png

        capacity_text_left.png

        capacity_text_right.png

        capacity_text_top.png

        而在Android7.1的同一目录下,则只有如下文件:

        battery_fail.png

        battery_scale.png

        其中,battery_scale.png为相应的动画文件,我们查找了一翻,发现在bootable/recovery目录下有interlace-frames.py文件,该文件用于将几张PNG图片合成一张PNG图片,我们使用如下命令将上面的battery_scale.png解包:

        python interlace-frames.py -d battery_scale.png -o battery.png

        会生成battery00.png、……、battery05.png共6个文件,而这6个文件刚好对应system/core/healthd/healthd_mode_charger.cpp文件里的default_animation_frames定义:

    static struct animation::frame default_animation_frames[] = {

        {

            .disp_time = 750,

            .min_level = 0,

            .max_level = 19,

            .surface = NULL,

        },

        {

            .disp_time = 750,

            .min_level = 0,

            .max_level = 39,

            .surface = NULL,

        },

        {

            .disp_time = 750,

            .min_level = 0,

            .max_level = 59,

            .surface = NULL,

        },

        {

            .disp_time = 750,

            .min_level = 0,

            .max_level = 79,

            .surface = NULL,

        },

        {

            .disp_time = 750,

            .min_level = 80,

            .max_level = 95,

            .surface = NULL,

        },

        {

            .disp_time = 750,

            .min_level = 0,

            .max_level = 100,

            .surface = NULL,

        },

    };

        表示在对应的level范围内显示对应的图片,6帧动画一一对应,这个可以按需修改参数。

        我们将自己的6张新动画制作好后,使用如下命令打包成新的图片:

        python interlace-frames.py -o battery_scale.png new/battery00.png new/battery01.png new/battery02.png new/battery03.png new/battery04.png new/battery05.png

        该命令执行好后,新的battery_scale.png文件生成,我们只需替换使用即可。

        在制作过程中碰到如下问题需要留意:

        1.每一张图片文件,必须保存为PNG-8格式(即8位的PNG格式图片);

        2.interlace-frames.py脚本需要修改如下:

           将

           import Image

           import PngImagePlugin

           修改为

           from PIL import Image

           from PIL import PngImagePlugin

    相关文章

      网友评论

        本文标题:制作Android7.1关机充电动画

        本文链接:https://www.haomeiwen.com/subject/fmencctx.html