说到动画,最开始想到的是帧动画,补间动画,以及属性动画,以上动画其实已经实现了应用中的大多数效果。
但是很多对用户交互要求比较高的应用仅依靠原生来搞已经没法满足要求了。
当然 MP4,GIF也是一种方案,但是哪款应用不去考虑性能以及内存呢,所以这篇文章介绍一下 Lottie,WebP,以及SVGA的基本使用,对于原生开发来说,上面的三种动画效果不需要我们去考虑,这里设计小姐姐就可以去设计,我们只是用一个容器去显示即可。
个人能力有限,不过多去介绍三者的原理以及优缺点
Lottie:
这里使用的 .json 的文件,当然根据需求我们可能会放一些对应的图片到里面去(需要与json文件里的参数名字对应)
推荐一个可以免费下载 Lottie的网页 https://lottiefiles.com/
1.添加依赖
com.airbnb.android:lottie:4.2.2
2.使用方式
2.1在布局文件里面 .xml
<com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/dimen_12"
android:layout_height="@dimen/dimen_11"
app:lottie_autoPlay="true"
app:lottie_fileName="lottie/lot_live.json"
app:lottie_loop="true"/>
lottie_autoPlay - 是否自动播放
lottie_loop - 是否循环播放
lottie_fileName - 需要播放的 json 文件位置,需要放在 assets 文件夹下
2.2代码里面
lav_j.setAnimation("lottie/lot_ld.json") //动态添加播放文件
lav_j.playAnimation() //开始播放
lav_j.isAnimating() //是否正在播放动画
lav_j.cancelAnimation() //取消播放
lav_j.setProgress() //设置到第几帧
WebP:
1.添加依赖
com.facebook.fresco:webpsupport:2.6.0
com.facebook.fresco:animated-webp:2.6.0
2.使用
布局文件里面
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="@dimen/dimen_40"
android:layout_height="@dimen/dimen_40" />
代码里面动态赋值
val controller: DraweeController = Fresco.newDraweeControllerBuilder()
.setUri(url)
.setAutoPlayAnimations(true)
.build()
iv.controller = controller
SVGA:
因为SVGA可以播放比较高质量的动画,比如直播间送礼特效的动画,所以SVGA的初始化相对以上两种稍微繁琐一点,类似于送礼动画不可能每次都去下载解析,所以SVGA具备缓存功能
1.导入依赖
com.github.yyued:SVGAPlayer-Android:2.6.1
2.初始化SVGA这里建议在 Application 里面初始化,尽量不要使用时在初始化,因为播放时还是比较消耗性能的
SVGAHelper.init(BaseApplication.context)
这里简单说一下使用,后面直接贴源码
2.1清单文件中
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/iv_live_gift"
android:layout_width="@dimen/dimen_40"
android:layout_height="@dimen/dimen_40"
android:layout_marginStart="@dimen/dimen_10"
android:background="@drawable/bg_0f0012_30"
android:onClick="@{vm.onGift}"
android:scaleType="fitXY" />
2.2代码中
SVGAHelper.startParse("svga/zbj_lw_dh.svga", object : SVGAParser.ParseComplet

文章介绍了在Android开发中,如何使用Lottie,WebP和SVGA框架来实现更复杂的用户交互动画。Lottie基于.json文件,WebP用于图像动画,而SVGA适合高质量动画,如直播送礼特效。这些技术可以减轻开发者的工作量并优化性能。
最低0.47元/天 解锁文章
1052

被折叠的 条评论
为什么被折叠?



