如何用ae做mg动画 ae怎么制作mg动画
1.概述
2. Apng动画播放流程
Apng动画播放流程包括Apng解析和Apng渲染两个过程Apng解析主要有两种方法下面我们将会介绍而Apng渲染主要包括三个步骤:消除(dispose)、合成(blend)、绘制(draw)由此得到Apng动画播放流程图如下:
Apng动画播放流程
3. Apng的解析
Apng的解析主要是将Apng文件转化成Apng序列帧Frame-n从上面的流程图可知Apng文件的解析列出了两种方案下面来分别说说:
1)Apng文件首先经过一个解压(ApngExact)的过程生成png序列帧保存在本地然后经过加载(LoadPng)处理生成序列帧Frame-n。假设Apng动画文件总共有90帧那么经过ApngExact处理后会生成90张png序列帧保存在本地每帧通过LoadPng处理生成Bitmap并供后面的Apng渲染使用。
2)Apng是一个独立的文件我们自己编写读取Apng文件的代码类:ApngReader当渲染第i帧时通过ApngReader直接获取第i帧的Bitmap。
比较:
1)方案一是将Apng文件全部解压成png序列图片保存在本地方案二是把Apng文件当做一个整体去处理需要第几帧直接读取第几帧并将该帧以Bitmap的形似保存到内存。
2)方案一解压得到的png图片在后面的渲染中需要转化成Bitamp而方案二直接就获取了第几帧的Bitmap相比于方案一方案二减少了一个从SD卡读取png文件的操作。
4. Apng的渲染
方案一的具体实现大家可以参考github上面的一个项目apng-view下面我们来讲讲方案二的具体实现即ApngReader的具体实现。
1) 解析Apng的每一帧我们是将整个文件放到一个buffer里面并且通过RandomAccessFile、MappedByteBuffer来读取Apng的每一帧ApngReader的构造函数如下:
下面来看看读取每一帧的方法:
2) Apng的消除操作Apng的消除操作是在ApngFrameRender的render方法做的方法如下:
dispose(ApngFrame frame)方法如下:
3) Apng的合成操作Apng的合成操作是在每一帧经过dispose之后做的具体方法是blend(ApngFrame frame, Bitmap frameBmp)代码如下:
4) Apng的绘制Apng的每一帧经过消除、合成操作之后就可以在View上面draw具体代码如下:
实例我们是在SurfaceView上面来绘制Apng的每一帧例子如下:
Activity代码:
Layout代码:
我们把一张Apng图片放到Asset目录下通过ApngSurfaceView来播放。
5. 说明
例子演示:
【抖音服务商】短视频营销全方位服务,打造属于自己的私域流量池。企业营销增长利器,引流、获客、优化、制作全方位短视频服务!微信:qq438569148版权声明:本文内容由互联网用户自发贡献,该文观点及内容相关仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容请联系QQ:1659480668立即清除!