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.下面将详细介绍各 ...
随机推荐
- 水图(牛客练习赛(DFS搜索))
题意: 小w不会离散数学,所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走 ...
- 三、Scrapy中选择器用法
官方示例源码<html> <head> <base href='http://example.com/' /> <title>Example web ...
- C#学习笔记_08_面向对象
08_面向对象 面向对象:一种看待问题解决问题的思维方式,着眼点在于找到一个能够帮助我们解决问题的实体,然后委托这个实体来帮我们解决问题:(在面向对象之前你要有一个女朋友,否则代码会经常出现bug) ...
- 第五节:web爬虫之urllib(一)
一.urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, ...
- 【模板】最小生成树Kruskal
洛谷3366 #include<cstdio> #include<algorithm> using namespace std; ,maxm=; ,ans=; struct e ...
- 7.1.2 Python 内置异常类层次结构
这一节就是拿来主义了,连接:https://blog.csdn.net/Karen_Yu_/article/details/78629918 异常名称 描述 BaseException 所有异常的基类 ...
- tp5 微信支付开发流程
1.用户在选择商品后,向APi提交包含它所选择商品的相关信息. 2.APi在接收到信息后,需要检查订单相关商品的库存量. 3.有库存,把订单数据存入数据库中= 下单成功了,返回客户端消息,告诉客户端可 ...
- 【Codeforces 158C】Cd and pwd commands
[链接] 我是链接,点我呀:) [题意] 让你实现Shell的cd和pwd操作 [题解] 用一个list表示当前的路径 如果路径以/开头则表示需要清空当前路径重新走路 否则在原来路径的基础上继续加就可 ...
- 【codeforces 711B】Chris and Magic Square
[题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...
- Django获取当前页面的URL——小记
获取带参数URL:request.get_all_path() 获取不带参数URL:request.path 获取主机地址:request.get_host()