Android 开关机动画 BootAnimation/ShutdownAnimation 解析

引言 (该部分转载):

开机动画的地址:system\media\bootanimation.zip,要修改开机动画就是修改bootanimation这个文件。如果说你的手机里没有这个文件,那就是说明你用的是官方原始版本的rom,开机动画没有被修改过,但这不碍事,没有就放一个进去,到时候想换回最原始的开机画面,也可以把bootanimation这个文件删了。官方最原始的开机动画在system\ framework\framework-res.apk\assets\images里面,里面主要是2张图片,高手面可以去研究一下,说不定通过这个文件可以用代码实现动画的过程。

接下来,说说bootanimation.zip这个文件的结构。

bootanimation里面主要包含一个desc.txt以及N个文件夹。而文件夹里面放着的就是你要的开机动画的图片。decs.txt的作用就是指导系统如何去执行你的开机画面。
下面继续说说desc.txt这个文档要怎么写。
先看例子,如果我的开机动画要用到2个文件夹,分别是part1和part2,。。。。我希望开机的时候,先把part1里面的图片都播放一遍,然后再循环播放part2里面的文件,直到进入系统。那么decs.txt文档的内容应该如下:

302 480 5
p 1 0 part1
p 0 0 part2
就这么多,现在解释一下这些命令吧。
第一行,320 480是代表你屏幕的分辨率,因为我们的胖6是320*480的,这就不多说了。后面的5是说,5帧每秒,不懂的可以这么理解,5是代表一秒钟播放5张图片。就这么简单。
第二行,p 1 0 part1。p应该是play吧,也就是播放的意思。1是播放一次。0是空指令,就是什么都不做。part1就是说,这条指令是针对part1这个文件夹的。整条指令的意思就是,播放part1里面的图片1次,然后什么都不做,马上进入下一条指令。
第三行,p 0 0 part2。p依然是播放。第一个0这里是代表循环播放,第二个0和上面第二条指令一样,代表什么也不做。part2也就不多说了。
至于为什么第一个0为什么是代表循环,只能这么说,这事国际惯例

总结公式如下:

第一条指令:屏幕的分辨率(空格)播放频率
第二条指令:p(空格)播放次数(空格)后续操作(空格)作用文件夹
第三条指令:同上
第N条指令:同上
屏幕分辨率的格式是:宽(空格)高,胖6的就是320 480。。。播放频率,上面已经说清楚了,至于到底要用多大的数字,视你开机动画的张数而定,比如说,一共有100张图片,开机时间是20秒,那么100/20就是5。
播放次数,1是代表一次,0代表循环播放。如果要播放2次的话,就是就是打个2上去,应该是这样吧,反正我是没试过,只试过0和1.
后续操作,0代表什么都不做,直接进入下一条指令。10是代表稍作停顿。

至于文件夹里面的图片,比较简单,首先,纠正一个说法,之前说必须要是png格式,经过我试验证明,jpg格式的也可以,其他的有待试验,不过只支持静态图片这点应该是真的,动态图片同样有待试验。其次,关于图片的尺寸,是不做要求的,只要在txt文档里写好手机的分辨率即可,开机的时候系统会自动适配。其其次要按播放循序命名,建议用5位数字,比如说,第一张图片是00010,第二张就是00020.。。。。为什么要从00010开始,而不是00001?因为这事预防以后要在第一张和第二张中间再插一张图片进去的话,就可以把插进去的图片命名为00011,在00010之后,00020之前。就这么简单。至于图片那里来嘛,当然是自己网上找啦,也可以下载别人的bootanimation,然后修改一下。

最后就是压缩包了,把需要用到的part文件夹跟decs.txt打包成zip格式,必须是zip,不能是rar,而且打包的时候压缩方式要选择“存储”模式。然后改名成为bootanimation.zip,复制到SD卡里,再通过RE文件管理器复制到system\media\下面,重启。要注意一下,bootanimation不能太大,大了会卡,一般不要超过3M。

关机动画:

system/media/shutdownanimation.zip,文件结构和 开机动画类似,不再阐述。

遇到的一个问题:

问题描述:CMCC版本开关机动画显示偏大(就是移动版那个 4G的动画 偏大了)

经查,开关机动画zip包中的 desc.txt 文件中 配置的 图片显示尺寸为 1440 2560,而我们的手机分辨率是 1080 1920.
  然后信誓旦旦的把 两个zip包从手机里pull 出来,然后把txt 文件配置一改,自信满满的再塞进去。开关机动画都没了,WTF!!!
  几经周折,终于找到原因,修改的时候我是直接打开压缩包修改完后保存关闭,这种修改方式完了后 压缩方式 使用的是默认的压缩方式,不是 存储 模式。最终导致 识别不到,所以动画消失。

正确的方式:
  导出zip包后,解压,修改txt文件,添加到压缩文件,选择 存储模式。修改图片也要如此,不能采用其他压缩方式。

你可能感兴趣的:(Android 开关机动画 BootAnimation/ShutdownAnimation 解析)