五大动画库对比之SVGA-iOS
APP常见的动画库对比:动画库LottieSVGAKeyframesSquallSpine支持平台Android/iOS/WebAndroid/iOS/WebAndroid/iOSiOSAndroid/iOS/Web设计工具支持AfterEffects(AE)AE&FlashAEAEAE功能边界所有部分矢量图矢量图大部分导出工具插件插件脚本插件单独的设计工具设计成本需要命名规范无需要脚本插件单独的设计工具资源包大小zip2.6M767K2M收费NNNYY官网airbnb.design/lottie/svga.io/git地址marcuseckert.comurl地址简介
SVGA 是一种跨平台的开源动画格式,同时兼容** iOS / Android / Web**。SVGA 除了使用简单,性能卓越,同时让动画开发分工明确,各自专注各自的领域,大大减少动画交互的沟通成本,提升开发效率。动画设计师专注动画设计,通过工具输出 svga 动画文件,提供给开发工程师在集成 svga player 之后直接使用。
优缺点
优点:
资源包小测试工具齐全跨平台,三端可用回调完整Protobuf 序列化结构数据格式,序列化的数据体更小,传递效率比xml,json 更高。
缺点:
每个礼物播放时都重新解压,需要改一套缓存策略svga 用zlib打包(字节流数据压缩程序库),不方便解压和追踪包内容。
SVGA动画库源码思路:
一帧一帧通过设置帧率,来生成一个配置文件,使得每一帧都有一个配置,每一帧都是关键帧,通过帧率去刷每一帧的画面,这个思路跟gif很像,但是通过配置使得动画过程中图片都可以得到复用。性能就提升上来了。并且不用解析高阶插值(二次线性方程,贝塞尔曲线方程)
demo实例:
Pods引入解析库SVGAPlayer。
pod 'SVGAPlayer', '~> 2.5.7' pod install --repo-update导入资源文件(18KB)
设计师使用插件导出的资源文件
具体实现
SVGAImageView *imageView = [initWithFrame:CGRectMake(0, 400, 420, 200)]; ; imageView.autoPlay = YES; ;
动画特效图
动画特效图
页:
[1]