大家好,又见面了,我是你们的朋友全栈君。
本帖最后由 nihao200823 于 2017-1-12 20:38 编辑
android开机动画制作与播放原理简介
谁都想拥有一个华丽漂亮的开机动画,这让人心情舒畅,android是怎么来实现的?怎么制作一个自己的开机动画?这里揭开android开机动画的神秘面纱。
1、制作开关机动画
1.1 开机动画的位置
system/media/bootanimation.zip,要修改开机动画就是修改bootanimation这个压缩文件。如果不存在该压缩包,使用原生自带的资源,其路径在system/framework/framework-res.apk/assets/images
(android-logo-mask.png,android-logo-shine.png),但是比较难看,比较常见的就是“android”。所以要定制自己的开关机动画一般都是在system/media/目录下放置bootanimation.zip和shutanimation.zip.这里以开机动画为例,关机动画和开机动画其原理一样。
http://wenku.baidu.com/link?url=gNQkdlCUcZ5WHOpJD4eEAkasT3LeqICFAAKkrjO7uKr3Emf6bqUEAZVfL49ox6lZevAvkgEPplc1VRMiU-0KTkmZMbnIRBc6mfIozWSCi97
资料之二
在Android中的开机动画有两种,一种是默认的Android文字显示,还有一种是自定义的动画。其主要实现的代码在\frameworks\base\cmds\bootanimation中。这里主要说明添加自定义的开机动画的方法:
添加自定义开机动画就是把要显示的动画的图片打包成bootanimation.zip文件。然后放到手机的“/data/local/”或“/system/media/”目录下。开机时,系统会检查这两个目录下有没bootanimation.zip文件,如果没有,则用默认的Android开机动画。
bootanimation.zip文件打包前的结构为:
desc.txt 动画属性描述文件
part0 第一阶段动画图片的目录 (动画是由一帧帧图片组成的)
part1 第二阶段动画图片的目录
bootanimation.zip文件是直接由这几个文件打包的,打包的格式是ZIP,并且要指定用压缩打包方式(就是在打包时的压缩方式选择为存储)。
desc.txt文件的格式为:
480 250 15
p 1 0 part0
p 0 10 part1
其中各个参数的意义为:
480 250 15
图片的宽 图片的高 每秒显示的帧数
p 1 0 part0
标识符 循环的次数 阶段切换间隔时间 对应图片的目录
p 0 10 part1
标识符 循环的次数 阶段切换间隔时间 对应图片的目录
标识符:p 是必须的。
循环次数:指该目录中图片循环显示的次数,0表示本阶段无限循环。
每秒显示的帧数:就是每秒显示的图片数量,决定每张图片显示的时间。
阶段切换间隔时间:指的是该阶段结束后间隔多长时间显示下一阶段的图片,其单位是每张图片显示的时间。
对应图片的目录:就是该阶段动画的系列图片,以图片文件目录的顺序显示动画,而且图片的格式必须要为PNG。
资料三
安卓自定义的开机动画文件为bootanimation.zip在放在\system\media下,替换这个后就可以有自己个性的开机画面,其实制作bootanimation.zip很简单,也不需要什么PS功底不需要也不需要任何图片制作功底,当然有最好可以自己制作属于自己专属的。
bootanimation.zip文件介绍与构成:开机动画文件名称:bootanimation.zip安卓Android的动画是由一系列的连续PNG图片作为帧组成的动画形式。不是合成为一张GIF图片,而是一个文件包,将各帧PNG图片以压缩方式保存。这个保存的文件名就是bootanimation.zip,这个文件是zip压缩文件,压缩方式要求是存储压缩,一般包含一个文件和两个目录:
1.动画属性描述文件:desc.txt——–这是一个保存形式为ANSI格式,用于设置这个动画像素(大小),帧数,闪烁次数,文件夹名称等;
2.第一阶段动画图片目录:part1——-存放每帧PNG图片文件夹;
3.第二阶段动画图片目录:part2——–存放每帧PNG图片文件夹;
desc.txt文件设置解析:
我们打开这个文件夹,可以看到这样的格式:
480 150 24 —————–这里的480代表图片的像素(大小)宽度,800代表图片的像素(大小)高度,30代表帧数,也就是图片一共多少张;
p 1 0 part1 —————–这里的p代表标志符,1代表循环次数为1次,0代表阶段间隔时间为0,part1代表对应的文件夹名;
p 0 0 part2 —————–这里的p代表标志符,0代表循环次数为0次,10代表阶段间隔时间为10,part2代表对应的文件名;
标志符:必须是: p
循环次数:0 : 表示本阶段无限循环
阶段切换间隔时间:单位是一个帧的持续时间,比如帧数是30,那么帧的持续时间就是1秒/30 = 33.3毫秒。阶段切换间隔时间期间开机动画进程进入休眠,把CPU时间让给初始化系统使用。也就是间隔长启动会快,但会影响动画效果。 part0和part1文件夹内包含的是两个动画的系列图片,图片为PNG格式。系列图片文件的加载刷新按文件名的名称排序。
值得注意desc.txt力的数字是写图片的大小,而不是你手机大小,要不开机动画就会跑偏了。
如果你不会制作图片那么你可以先找2个动态图片来,把这2个动态图片分解出每一帧的图片,并保存为PNG格式,记得2个图片要一样大哦,然后吧图片按照bootanimation.zip的构造放进不同的文件夹,然后就可以制作出开机动画bootanimation.zip。
如果你要自己做的话那么看下面教程:
Fireworks为例,新建一张合适大小的图片,然后到网上找个你觉得做开机动画的图片,插入到新建的图片里,增加帧数,使用第一帧复制到其他帧去,然后再每一帧进行制作,其实跟制作动态图片是一样的,制作好后你可以预览效果,觉得可以了就开始分解,不行的话继续调整。
然后再新建图片跟之前新建的大小一样,有多少帧就新建多少个,把每一帧里的图片全选,记得是全选后按顺序复制到新建的图片里,最后就是另存为PNG,这个也要按顺序给图片写上编号。
然后依照这个方法再制造一个part1,就可以打包制作开机动画bootanimation.zip了。
资料四图文教程
http://jingyan.baidu.com/article/6c67b1d6f14fc92787bb1e1a.html
资料五 并非原创,对应盒子需要修改动画图片分辨率。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146300.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...