Android自定义开机和关机动画
Android自定义开机和关机动画
Android在开机的过程中,会经历三张图片,关于静态图的修改在我的这篇文章中有介绍到:
现在要介绍的是怎么用动画替换静态图片。开/关机的动画其实就像帧动画一样,快速播放多张图片形成的,在开/关机动画中要将这些图片打包进一个zip中,再进行适当的配置,就可以实现动画播放。
一、开/关机动画zip文件路径
在源码中找到这个文件:frameworks/base/cmds/bootanimation/BootAnimation.cpp
其中有这些定义:这些宏定义就是开/关机过程中动画文件的位置,看名字应该就知道,bootanimation.zip是开机动画,shutanimation .zip是关机动画
#define OEM_BOOTANIMATION_FILE "/oem/media/bootanimation.zip"
#define SYSTEM_BOOTANIMATION_FILE "/system/media/bootanimation.zip"
#define CUSTOM_BOOTANIMATION_FILE "/custom/media/bootanimation.zip"
#define USER_BOOTANIMATION_FILE "/data/local/bootanimation.zip"
#define SYSTEM_ENCRYPTED_BOOTANIMATION_FILE "/system/media/bootanimation-encrypted.zip"
#define EXIT_PROP_NAME "service.bootanim.exit" #define SYSTEM_SHUTANIMATION_FILE "/system/media/shutanimation.zip"
#define CUSTOM_SHUTANIMATION_FILE "/custom/media/shutanimation.zip"
#define USER_SHUTANIMATION_FILE "/data/local/shutanimation.zip"
二、开机动画
1、新建目录part0,将需要显示的jpg拷贝进去。
2、新建目录part1,将需要显示的jpg拷贝进去。
*** ***可以根据需求添加文件夹个数
3、新建空文本文件desc.txt,内容如下:
1080 1920 15
p 1 2 part0
p 0 2 part1
1080 1920 12 (1080,1920是分辨率,12是帧数)
p 1 2 part0(p是标识符,1代表该文件夹循环1次,2代表两次循环之间间隔2张图片的时间(例:2/15秒),part0代表要显示的文件夹)
p 0 2 part1(p是标识符,0代表无限循环,2代表两次循环之间间隔2张图片的时间(例:2/15秒),part1代表要显示的文件夹)
如果配置有更多的文件夹,则按照以上两个的例子添加配置即可
4、将这三个文件以存储方式打包成bootanimation.zip(注意:一定要以“存储”的模式打包,压缩时默认是“标准”必须改为“存储”,非存储方式无法识别)。
存储在对应目录下。例:
/system/media/bootanimation.zip
5、在该文件中添加(不一定必须在embedded.mk中,其它文件也可以,只要可以确保添加的PRODUCT_COPY_FILES能被执行到):
/build/target/product/embedded.mk
前边是源码中文件位置,后边是复制到out后文件位置
PRODUCT_COPY_FILES += \
system/media/bootanimation.zip:system/media/bootanimation.zip
三、关机动画
1、新建目录part1,将需要显示的jpg拷贝进去。
2、新建目录part2,放入最后一张jpg
3、新建空文本文件desc.txt,内容如下:
1080 1920 9
p 1 2 part1
p 0 2 part2
1080 1920 9 (1080,1920是分辨率,9是帧数)
p 1 2 part1(p是标识符,1代表该文件夹循环1次,2代表两次循环之间间隔2张图片的时间(例:2/9秒),part1代表要显示的文件夹);
p 0 2 part2(p是标识符,0代表无限循环,2代表两次循环之间间隔2张图片的时间(例:2/9秒),part2代表要显示的文件夹)。
4、将这三个文件以存储方式打包成shutanimation.zip(注意:一定要以“存储”的模式打包,压缩时默认是“标准”必须改为“存储”,非存储方式无法识别)。
存储在对应目录下。例:
/system/media/shutanimation.zip
5、在该文件中添加(不一定必须在embedded.mk中,其它文件也可以,只要可以确保添加的PRODUCT_COPY_FILES能被执行到):
/build/target/product/embedded.mk
前边是源码中文件位置,后边是复制到out后文件位置
PRODUCT_COPY_FILES += \
system/media/shutanimation.zip:system/media/shutanimation.zipp
然后重新编译源码,刷机即可
Android自定义开机和关机动画的更多相关文章
- 源码中修改Android的开机画面和动画【转】
本文转载自:http://blog.csdn.net/dddxxxx/article/details/54343976 参照文章:http://blog.csdn.net/a345017062/art ...
- Android -- 自定义ViewGroup+贝塞尔+属性动画实现仿QQ点赞效果
1,昨天我们写了篇简单的贝塞尔曲线的应用,今天和大家一起写一个QQ名片上常用的给别人点赞的效果,实现效果图如下: 红心的图片比较丑,见谅见谅(哈哈哈哈哈哈).... 2,实现的思路和原理 从上面的效果 ...
- Android 自定义录音、播放动画View,让你的录音浪起来
最近公司项目有一个录音的录制和播放动画需求,然后时间是那么紧,那么赶紧开撸. 先看效果图 嗯,然后大致就是这样,按住录音,然后有一个倒计时,最外层一个进度条,还有一个类似模拟声波的动画效果(其实中间的 ...
- Android自定义View+贝赛尔曲线
Android -- 贝塞尔曲线公式的推导和简单使用https://www.cnblogs.com/wjtaigwh/p/6647114.html Android -- 贝塞尔使圆渐变为桃心http: ...
- Android动画效果之自定义ViewGroup添加布局动画
前言: 前面几篇文章介绍了补间动画.逐帧动画.属性动画,大部分都是针对View来实现的动画,那么该如何为了一个ViewGroup添加动画呢?今天结合自定义ViewGroup来学习一下布局动画.本文将通 ...
- android 自定义动画
android自定义动画注意是继承Animation,重写里面的initialize和applyTransformation,在initialize方法做一些初始化的工作,在applyTransfor ...
- Android自定义View 画弧形,文字,并增加动画效果
一个简单的Android自定义View的demo,画弧形,文字,开启一个多线程更新ui界面,在子线程更新ui是不允许的,但是View提供了方法,让我们来了解下吧. 1.封装一个抽象的View类 B ...
- Android 自定义波浪动画 --"让进度浪起来~"
原文链接:http://www.jianshu.com/p/0e25a10cb9f5 一款效果不错的动画,实现也挺简单的,推荐阅读学习~ -- 由 傻小孩b 分享 waveview <Andro ...
- Android 自定义View修炼-自定义可动画展开收缩View的实现
有时候需要点击一个view可以动画展开和收缩折叠一个View这样的效果,这样就可以直接自定义View来实现. 本例中,采用继承FrameLayout来实现自定义的ExpandView.下面将详细介绍各 ...
随机推荐
- jquery spa
1.hashchange监听 2.根据url加载不同页面 $.ajax({ url:"/xx/xx.html" type:"get", dataType:&qu ...
- gitlab分享项目到其它组
1. 找到以下页面(管理员权限),随便点入一个项目 2. 点击edit编辑 3.点击members 4. 查看是否分享成功
- jQuery练习:表单模态框
代码:基于事件冒泡原理和事件委托 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta cha ...
- 【IntelliJ IDEA】idea上安装Translation插件后,需要AppKey才能生效的解决方案
使用idea安装的翻译插件translation,但是使用的时候并不友好 无奈,如果想使用翻译软件并且更方便的话,可以如下: 可以选择将translation进行卸载 清除缓存并进行重启 然后再启动之 ...
- mybatis源码阅读-执行器StatementHandle和ParameterHandler(五)
StatementHandle 类图 各个实现类的作用 SimpleStatementHandler 用于使用Statement操作数据库(不会使用参数化查询?) PreparedStatementH ...
- HDU 1561&HDU 3449 一类简单依赖背包问题
HDU 1561.这道是树形DP了,所谓依赖背包,就是选A前必须选B,这样的问题.1561很明显是这样的题了.把0点当成ROOT就好,然后选子节点前必须先选根,所以初始化数组每一行为该根点的值.由于多 ...
- apache zookeeper的安装
original article:http://zookeeper.praveendeshmane.co.in/zookeeper/zookeeper-3-4-6-single-server-setu ...
- Android 中View的绘制机制源代码分析 一
尊重原创: http://blog.csdn.net/yuanzeyao/article/details/46765113 差点儿相同半年没有写博客了,一是由于工作比較忙,二是认为没有什么内容值得写, ...
- 《简明Python编程》核心笔记(1~5章)
2014年8月20日 <简明Python编程>核心笔记 (1~5章) 昨天和今天两天时间里.把<简明Python编程>这一本书学完了,包含书上的代码.现把核心笔记记录下来,以 ...
- centos改动sshport
vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22port.加入一行例如以下: Port 34981 然后保存退出 然后service sshd rest ...