赞
踩
2. 将图片转换为raw格式
使用linux下的ImageMagick自带的convert命令,进行raw格式转换,命令为:
convert -depth 8 android_logo.png rgb:android_logo.raw
注:ubuntu 10.04 默认已经安装ImgageMagick工具,如果当前系统没有安装,可以执行下面的命令安装:
sudo apt-get install imagemagick
3. 将raw格式转化为rle文件
需要用到android编译后的rgb2565工具,在android/out/host/linux-x86/bin目录下(android为当前源码所在目录),转换命令如下:
rgb2565 -rle < android_logo.raw > initlogo.rle
到目前为止,启动需要显示的图像已经做好了,就是initlogo.rle,注意文件名必须是这个,如果想改文件名,需要修改android/system/core/init/init.h中的宏:
#define INIT_IMAGE_FILE "/initlogo.rle"
cpio -i -F ../ramdisk.img
/system/core/rootdir/init.rc
查看 BootAnimation.cpp里面的内容,你就会发现,用户自己制定的logo路径为:#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
系统的为: #define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
要修改logo动画的话,把做好的bootanimation.zip文件放到这两个目录下就ok了
开机动画的制作,先要从bootanimation.zip这个压缩包说起,从网上随便下载一个动画包,解压后可以得到part0 part1和desc.txt,其中desc.txt最重要,打开desc.txt我们可以看到
其中480 852意思是说你开机动画在屏幕先以多少的分辨率显示,我的是480 852,那么不论图片大小、比例都会按照这个分辨率来播放,所以制作的时候请注意,就算要修改也要按照比例来(最大不要超过480 852)。后面的25代表的是帧数,添多少,每秒就按这个数来播放图片!通俗的说就是图片的播放速度。(小提示中国的电视帧数都是25,而欧美的是29)
part0 part1的作用请看下面
p 1 0 part0 这句指令就代表这part0文件夹内的图片只按名称顺序播放一次
p 0 0 part1 这一句指令代表着part1文件夹内的图片会循环反复播放:
了解了各文件和文件夹的作用,我们再来看一看,动画的组成部分——图片
图片必须使用PNG格式的,至于是PNG8 还是PNG24 32都无所谓,但必须是PNG的,所有图片必须按名称顺序排列,因为播放的顺序就是按名称的。
图片和desc.txt都准备好后,就要开始压缩了,压缩格式选择ZIP,压缩方式选择存储(很重要!!!)
desc.txt文件分析:
480 427 30
宽 高 帧数
p 1 0 part0
标志符 循环次数 阶段切换间隔时间 对应目录名
p 0 10 part1
标志符 循环次数 阶段切换间隔时间 对应目录名
==================
标志符:
必须是: p
循环次数:
0 : 表示本阶段无限循环
阶段切换间隔时间:
单位是一个帧的持续时间,比如帧数是30,那么帧的持续时间就是1秒/30 = 33.3毫秒。
阶段切换间隔时间期间开机动画进程进入休眠,把CPU时间让给初始化系统使用。
也就是间隔长启动会快,但会影响动画效果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。