android 开机关机动画

if (false == mIsShutdown)
{
   status_t err = mZip.open("/data/local/bootanimation.zip");
   if (err != NO_ERROR) {
       err = mZip.open("/system/media/bootanimation.zip");
       if (err != NO_ERROR) {
           mAndroidAnimation = true;
       }
   }
}
else
{
   status_t err = mZip.open("/data/local/shutdownanimation.zip");
   if (err != NO_ERROR) {
       err = mZip.open("/system/media/shutdownanimation.zip");
       if (err != NO_ERROR) {
           mAndroidAnimation = true;
       }
   }
}


1. 首先要明白,Android 系统的开机动画是一个zip文件,首先是读取/data/local/bootanimation.zip,
 
        如果在那里找不到,就去读取默认的/system/media/bootanimation.zip 
        所谓动画只是循环的播放这个zip里的很多png图片。
 


2. 知道这个,就给了我们机会自己做一个开机画面,以替换掉系统默认的开机画面了。
    第一步,我们将想要的动画转换成png图片(ps:N3 可以使用32bit 分辨率小,文件不大,再说应该有不少人刷了700M了吧。如果你想文件小点,就改为位深8bit,以缩小文件占用磁盘空间,但那图片效果就。。。)


3. 做好了图片,就需要把图片打成bootanimation.zip包了。
 
    这个包,除了图片目录,还有一个desc.txt的文件,这个文本文件是用来告诉系统,如何使用图片目录来实现“动画”的。 所以有一定的语法,不过很简单。
   
     以一个desc.txt为例, 

  480 288 15        // 图片宽度480,高度288,这是我修改N3的屏幕参数(不用272是因为绑定长宽比从800*480修改过来的),最后15是播放动画的每秒帧率。就是一秒钟播放多少张图片,动画的最原始实现。小时候大家都玩过吧
  p 1 0 foldername        // p 是一个分隔符,1 表示播放一遍,0表示播放完后停顿 0 帧,最后是图片所在的zip包里的目录名。比如你的zip包里最后是这么个结构
                                       //  folder0(里面包含很多图片)  + desc.txt, 那么你可以在这里把foldername 替换成folder0
  根据这个语法,我们也可以自定义各种动画形式,例如下面所示:
  p 2 30 folder0        将folder0里的图片,播放2遍,播放完一遍后停顿30帧,因为我们之前设置了帧率是15帧每秒,那么这里就等于停顿2秒。
  p 0 0 folder1        将folder1里的图片无限循环播放,每次播放不停顿。

如果你设置的宽度和高度不充满屏幕也没关系,剩余区域,系统会填充黑色。如果你设置的宽度和高度大过屏幕,系统会自动裁剪显示居中部分的图片区域。

4. 将转换好的图片集打包在不同的目录下, 然后把图片目录和一个描述动画的desc.txt 无压缩率格式打包成bootanimation.zip, 注意一定要选择无压缩率,无损压缩。另外保持压缩包后的目录结构。
 
 

5. 最后将这个zip文件 拷贝到你的机器里 /data/local/bootanimation.zip

    开机后,就能看到你自己制作的开机动画了。


附: 开机动画:机器人_玻璃_乱涂乱画、仿电脑开机  分辨率为480*288  测试正常显示
说明:  下载后删去文件名中的中文,直接拷贝至/data/local/即可

机器人_玻璃_乱涂乱画  5.05 MB(已测试)
 
 
 

下载地址:点此下载


仿电脑开机  3.86 MB(已测试)
 
 
 

下载地址:点此下载


ps: 关于压缩包大小,经个人测试12M以内正常,12M以上N3未测试

00018.png (22.11 KB, 下载次数: 42)

你可能感兴趣的:(android 开机关机动画)