android开机动画制作与播放原理简介
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.这里以开机动画为例,关机动画和开机动画其原理一样。
1.2 bootanimation.zip文件结构bootanimation里面主要包含一个desc.txt以及N个文件夹。而文件夹里面放着的就是开机动画的图片资源。decs.txt的作用就是指导系统如何去执行开机动画。
desc.txt编写规范,例如开机动画需要用到2个文件夹,分别是folder1和folder2,开机的时候,先把folder1里面的图片都播放一遍,然后再循环播放folder2里面的文件,直到进入系统,decs.txt文档的内容如下:
BootAnimation_main.cppBootAnimation.hbootAnimation.cpp
2.3.1 Bootanimation_main.cpp
该文件是主入口文件;
boolBootAnimation::threadLoop(){ ........省略........ if(!bBootOrShutDown){ pSoundFileName="/data/local/shutaudio.mp3"; pBackupSoundFileName="/system/media/shutaudio.mp3"; } else { pSoundFileName="/data/local/bootaudio.mp3"; pBackupSoundFileName="/system/media/bootaudio.mp3"; } if (mAndroidAnimation) r = android(); } else { r = movie(); }}threadLoop()方法根据 mAndroidAnimation 变量调用android()/movie(). 如果system/media/shutanimation.zip/bootanimation.zip存在的话,调用movie(),该接口会解析zip文件中的desc.txt文件,根据txt文件中的配置来播放动画。否则就调用android来播放原生自带的资源。
3、总结 对于图片资源时如何绘制的,我想这不是本文的重点,有兴趣的同学可以继续深究,这里仅仅是抛砖引玉。