做网站卖菜刀需要什么手续,重庆智能网站建设,哪个网站做视频挣钱,ui设计速成培训机构文章目录 Android开机动画压缩包zip#xff0c;自制开机动画1.Android加载压缩包原理2.自制开机动画 Android开机动画压缩包zip#xff0c;自制开机动画
1.Android加载压缩包原理
这里有个md文件我们看下 核心部分,
首先要创建一个文件叫做desc.txt#xff0c;这是规定的… 文章目录 Android开机动画压缩包zip自制开机动画1.Android加载压缩包原理2.自制开机动画 Android开机动画压缩包zip自制开机动画
1.Android加载压缩包原理
这里有个md文件我们看下 核心部分,
首先要创建一个文件叫做desc.txt这是规定的
## desc.txt formatThe first line defines the general parameters of the animation://宽高fps帧率WIDTH HEIGHT FPS* **WIDTH:** animation width (pixels)* **HEIGHT:** animation height (pixels)* **FPS:** frames per second, e.g. 60It is followed by a number of rows of the form://TYPE 是一个字符 是一个格式COUNT多少次要运行bootanimation PAUSE是否延迟暂停一帧PATH 0-4
//TYPE COUNT PAUSE PATH这四个参数都要写上TYPE COUNT PAUSE PATH [#RGBHEX [CLOCK1 [CLOCK2]]]* **TYPE:** a single char indicating what type of animation segment this is://启动结束会被打断 p -- this part will play unless interrupted by the end of the boot//无论如何都不会被打断 c -- this part will play to completion, no matter what//0代表直到开机boot完成为止* **COUNT:** how many times to play the animation, or 0 to loop forever until boot is complete* **PAUSE:** number of FRAMES to delay after this part ends* **PATH:** directory in which to find the frames for this part (e.g. part0)* **RGBHEX:** _(OPTIONAL)_ a background color, specified as #RRGGBB
//坐标参数clock* **CLOCK1, CLOCK2:** _(OPTIONAL)_ the coordinates at which to draw the current time (for watches): If only CLOCK1 is provided it is the y-coordinate of the clock and the x-coordinatedefaults to c If both CLOCK1 and CLOCK2 are provided then CLOCK1 is the x-coordinate and CLOCK2 isthe y-coodinate Values can be either a positive integer, a negative integer, or c- c -- will centre the text- n -- will position the text n pixels from the start; left edge for x-axis, bottom edgefor y-axis- -n -- will position the text n pixels from the end; right edge for x-axis, top edgefor y-axis- Examples:* -24 or c -24 will position the text 24 pixels from the top of the screen,centred horizontally* 16 c will position the text 16 pixels from the left of the screen, centredvertically* -32 32 will position the text such that the bottom right corner is 32 pixels aboveand 32 pixels left of the edges of the screenThere is also a special TYPE, $SYSTEM, that loads /system/media/bootanimation.zip
and plays that.图片路径part0,表示图片文件夹里面都是一张张的图片文件
## zipfile pathsThe system selects a boot animation zipfile from the following locations, in order:/system/media/bootanimation-encrypted.zip (if getprop(vold.decrypt) 1)/system/media/bootanimation.zip/oem/media/bootanimation.zip## zipfile layoutThe bootanimation.zip archive file includes:desc.txt - a text filepart0 \part1 \ directories full of PNG frames... /partN /如果我们预制了zip的文件那么代码就会走movie 加载动画解析zip里面的文件 BootAnimation::Animation* BootAnimation::loadAnimation(const String8 fn)
{if (mLoadedFiles.indexOf(fn) 0) {SLOGE(File \%s\ is already loaded. Cyclic ref is not allowed,fn.string());return nullptr;}ZipFileRO *zip ZipFileRO::open(fn);if (zip nullptr) {SLOGE(Failed to open animation zip \%s\: %s,fn.string(), strerror(errno));return nullptr;}Animation *animation new Animation;animation-fileName fn;animation-zip zip;animation-clockFont.map nullptr;mLoadedFiles.add(animation-fileName);//解析desc.txt文件parseAnimationDesc(*animation);if (!preloadZip(*animation)) {return nullptr;}mLoadedFiles.remove(fn);return animation;
}读取描述文件 这四个参数是必须要写的 把文件夹的每一帧图片加载进来 然后就到一个关键方法播放动画。 他会去执行每一个part文件夹一帧一帧的绘制图片纹理。 2.自制开机动画
准备资源 编写desc.txt文件规则
第一行是宽高帧率fps
有多少个part文件夹就写多少行数
c 无论如何都会执行完当前的这个part部分保证动画的连续性1 循环一次只播放一次 0 停留的帧数
#ffee00代表颜色值c c代表位置横纵坐标都是center居中。
1080 360 60
c 1 0 part0 #ffee00 c c
c 0 0 part1 #ffee00 c c
c 1 0 part2 #ffee00 c c
c 1 1 part3 #ffee00 c c
c 1 0 part4 #ffee00 c c打包zip的压缩包
zip -r -X -Z store bootanimation part*/* desc.txt
执行命令
如下图 预制到/system/media
把 bootanimation.zip 动画文件移动到 我们自定义的product 文件中。 配置文件 test.mk中添加如下内容
PRODUCT_COPY_FILES \$(LOCAL_PATH)/bootanimation.zip:/system/media/bootanimation.zipPRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \ /system/media/bootanimation.zip然后测试运行