解开zip包可以看到描述文件和资源文件,其中配置文件固定为--desc.txt,该文件类似ini文件会被一行一行解析,分为两种格式:
第一种是,3个参数的:
前2个参数是图像的宽、高,后面一个动画的 fps。
例如:768 324 10,表示图像是 768x324,动画以 10fps 播放。
这种一般就写一行就行了,写多了后面的会覆盖前面的配置的。
如果这个分辨率比屏幕分辨率低的话,就会居中显示。这个分辨率最好和图片一样,否则会缩放的(GL 的纹理贴图,默认代码 GL 纹理选项没开最好的过滤方式,所以最好不要缩放)。
第二种是,4个参数的,是用来描述动画组成部分的(part)。
android 的开机动画 part 分为2种类型,一种是循环有限次数播放的,播放完指定次数这个 part 就结束了,进入到下一个 part;一种是无限循环播放的,直到开机初始化完成,bootanimation 进程结束(一般就2个 part,第一个不循环的,第二个循环的,应该可以写多与3个的 part,但是一般都不这么做)。第一个参数表示 part 是否必需要等到播放完成才能结束(就是说这个 part 能不能被中断,例如说开机初始化很快,动画还没播放就初始化好了,这个时候 bootanimation 进程会接收到上层 framework 请求终止的消息), 填 ‘c’ 表示必需要等到这个 part 不能被终止(就是要必需被播放完,不能被提前终止)。填其它的表示可以被提前终止(一般填写 ‘p’)。
第2个参数表示这个 part 的循环次数。如果填 0 就表示是无限循环的,大于 0 就是循环次数。注意一下,不要第一个参数填 ‘c’,这个参数填 0,这样填写开机动画就变成无限循环了。
第3个参数表示循环之间的等待时间(单位是以 fps 帧数来算的,例如10就是表示等待10帧),就是播放一次循环后,等多长时间开始下一次循环。
第4个参数表示这个 part 使用的图片资源的路径。在 zip 包中不同的 part 要建立不同的文件夹(例如 part1/, part2/),图片以 frame 动画的编号命名放好,例如 f0000、f0001、f0002。