返回顶部
首页 > 资讯 > 移动开发 >Android Lottie实现中秋月饼变明月动画特效实例
  • 884
分享到

Android Lottie实现中秋月饼变明月动画特效实例

2024-04-02 19:04:59 884人浏览 薄情痞子
摘要

目录前言Lottie 案例尝试 1. 集成依赖 2. 添加 LottieAnimationView 加载网络资源 3. 加载本地资源 4. 循环播放 & 动画监听 5. 暂停

前言

小菜在 Android 端进行动画处理时主要用的是 Android 自带的三种动画形式,今天小菜简单尝试通过 airbnb Lottie 展示一个中秋月饼变明月的小动画;

Lottie

Lottie 动画是 Airbnb 开源的一套多平台兼容的动画形式,小菜之前简单尝试过 Flutter 版本,使用非常便捷,今天小菜简单了解一下 Android 版本;

案例尝试

1. 集成依赖

在 build.gradle 中集成最新版本的 Lottie 依赖并同步;


api 'com.airbnb.android:lottie:4.1.0'

2. 添加 LottieAnimationView 加载网络资源

首先在 xml 文件中添加 LottieAnimationView,之后通过 setAnimationFromUrl() 加载网络资源;其中加载网络图片时有两个重载方法,其中 cacheKey 为缓存策略;加载完网络资源之后还需要 playAnimation( 启动动画;


<com.airbnb.lottie.LottieAnimationView
    android:id="@+id/lottie_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

mView = (LottieAnimationView) this.findViewById(R.id.lottie_view);
mView.setAnimationFromUrl("https://assets6.lottiefiles.com/packages/lf20_Tprkoc.json");
mView.playAnimation();

3. 加载本地资源

当 LottieAnimationView 加载本地资源时,需要先下载生成的 json 文件,并添加到工程中,通过 setAnimation() 引入本地资源;其中 setAnimation() 也有多个重载方法,可以灵活应用;


mView2 = (LottieAnimationView) this.findViewById(R.id.lottie_view2);
mView2.setAnimation("mooncake.json");
mView2.playAnimation();

4. 循环播放 & 动画监听

前两步设置完 setAnimation() 之后,播放完成就停止动画,若需要重复播放,可以通过 loop(true) 方式进行循环播放,但该方法在新的 API 中不建议使用,可以通过 setRepeatCount() 设置播放次数,或通过动画监听在动画结束时再次播放等;


mView2.loop(true);

mView1.setRepeatCount(5);

可以通过 addAnimatorListener() 进行动画监听;其中当设置 **** 播放次数后,每次播放均会调用 onAnimationRepeat() 回调,播放结束之后才会调用 onAnimationEnd();而如果不设置播放次数时,不会进入 onAnimationRepeat() 回调;


mView2.addAnimatorListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animator) {
        Log.e(TAG, "-> onAnimationStart()");
    }

    @Override
    public void onAnimationEnd(Animator animator) {
        Log.e(TAG, "-> onAnimationEnd()");
    }

    @Override
    public void onAnimationCancel(Animator animator) {
        Log.e(TAG, "-> onAnimationCancel()");
    }

    @Override
    public void onAnimationRepeat(Animator animator) {
        Log.e(TAG, "-> onAnimationRepeat()");
    }
});

5. 暂停 & 继续 & 取消

小菜通过 playAnimation() 使动画进行播放;而 Lottie 也提供了 pauseAnimation() 暂停动画;resumeAnimation() 暂停后继续播放以及 cancelAnimation() 取消动画等方法;

其中调用 playAnimation() 时会从动画起始位置播放,而 resumeAnimation() 会从暂停或取消动画停止位置播放;pauseAnimation() 和 cancelAnimation() 均会停止动画,但 cancelAnimation() 停止后会 lottieDrawable.cancelAnimation() 清空动画 Drawable,且会在 onAnimationCancel() 监听中进行回调;


@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.main_btn1:
            mView2.playAnimation();
            break;
        case R.id.main_btn2:
            mView2.pauseAnimation();
            break;
        case R.id.main_btn3:
            mView2.resumeAnimation();
            break;
        case R.id.main_btn4:
            mView2.cancelAnimation();
            break;
    }
}

小扩展

1. 硬件加速器

小菜在使用 Lottie 时建议开启硬件加速器,降低动画帧率,避免卡顿;


android:hardwareAccelerated="true"

2. json 文件解析

小菜之前觉得 Lottie 的 json 文件是一个很神奇很复杂的天书,今天小菜简单介绍一下其中属性对应关系;

整体结构包括如下几个部分:v 为对应 bodymovin 动画版本;fr 为帧率;ip / op 分别对应起始/结束关键帧;w / h 为动画宽高;assets 为资源信息,包括 Drawable 等;layers 为图层信息;

asstes 中 w / h 为资源宽高;u / p 非别对应资源露肩和名称;其中的 layers 也为图层信息;layers 中的 ks 为动画的主要信息;

小菜理解 Lottie 整体是利用属性动画控制进度,通过进度变更更改 layers 中触发 LottieAnimationView 重绘各个资源信息;

总结

到此这篇关于Android Lottie实现中秋月饼变明月动画特效的文章就介绍到这了,更多相关Android Lottie动画特效内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android Lottie实现中秋月饼变明月动画特效实例

本文链接: https://lsjlt.com/news/135204.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android Lottie实现中秋月饼变明月动画特效实例
    目录前言Lottie 案例尝试 1. 集成依赖 2. 添加 LottieAnimationView 加载网络资源 3. 加载本地资源 4. 循环播放 & 动画监听 5. 暂停...
    99+
    2024-04-02
  • 基于Python实现中秋佳节月饼抢购脚本
    目录申明前言原理安装 Selenium方式1方式2安装浏览器驱动下载配置环境变量代码开发测试注意 申明 本博客不提供任何服务器端程序,也不提供任何收费抢购软件。该博客仅用于学习sel...
    99+
    2024-04-02
  • 利用Matlab实现绘制中秋山间秋月和皓月当空效果
    目录绘制效果山间秋月皓月当空中秋节还有三天就到了,中秋节啊,阖家团圆的日子,又有多少人去摆弄电脑甚至打开MATLAB?因此要发就现在! 绘制效果 月饼绘制,立体月饼绘制,月饼状统...
    99+
    2024-04-02
  • 利用CSS实现日地月公转动画效果
    本篇内容主要讲解“利用CSS实现日地月公转动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“利用CSS实现日地月公转动画效果”吧!HTML重点是CSS,HT...
    99+
    2024-04-02
  • css实现透明渐变特效的案例
    这篇文章给大家分享的是有关css实现透明渐变特效的案例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。知乎发现栏目上的标题图一般都是以下图方式展现的,很显然它是利用渐变去实现的。思路很有意思,主要是要有两方面的认知...
    99+
    2023-06-08
  • Android实现颜色渐变动画效果
    目录前言一、Android中插值器TypeEvaluator二、案例效果实现1.利用Android自带的颜色插值器ArgbEvaluator2.看看Android自带颜色插值器Arg...
    99+
    2024-04-02
  • 怎么在Android中实现透明动画
    这篇文章给大家介绍怎么在Android中实现透明动画,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首页是有一个 Activitypublic class AlphaAnimationActivity...
    99+
    2023-06-15
  • android颜色渐变动画效果怎么实现
    在Android中,你可以使用ValueAnimator和ArgbEvaluator类来实现颜色渐变动画效果。下面是一个简单的示例代...
    99+
    2023-08-18
    android
  • Android怎么实现颜色渐变动画效果
    本篇内容主要讲解“Android怎么实现颜色渐变动画效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么实现颜色渐变动画效果”吧!效果图:一、Android中插值器TypeEva...
    99+
    2023-06-30
  • Android中Toolbar随着ScrollView滑动透明度渐变效果实现
    Android中Toolbar随着ScrollView滑动透明度渐变效果实现 一.思路:监听ScrollView的滑动事件 不断的修改Toolbar的透明度 二.注意 1.Sc...
    99+
    2022-06-06
    渐变效果 明度 toolbar scrollview Android
  • CSS3中怎么实现复选框动画特效
    CSS3中怎么实现复选框动画特效,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实例代码代码如下:<!DOCTYPE ht...
    99+
    2024-04-02
  • CSS3中怎么实现单选框动画特效
    本篇文章为大家展示了CSS3中怎么实现单选框动画特效,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<div class="radio-1&...
    99+
    2024-04-02
  • Android xml实现animation的4种动画效果实例代码
    animation有四种动画类型:分别为alpha(透明的渐变)、rotate(旋转)、scale(尺寸伸缩)、translate(移动),二实现的分发有两种,一种是javaC...
    99+
    2022-06-06
    XML animation 动画 Android
  • Android实现仿今日头条点赞动画效果实例
    目录一、前言二、需求拆分三、实现方案1、点赞控件触摸事件处理2、点赞动画的实现2.1、点赞效果图片的获取和存储管理2.2、点赞表情图标动画实现2.3、点赞次数和点赞文案的绘制3、存放...
    99+
    2024-04-02
  • 实例解析如何在Android应用中实现弹幕动画效果
    在B站或者其他视频网站看视频时,常常会打开弹幕效果,边看节目边看大家的吐槽。弹幕看起来很有意思,今天我们就来实现一个简单的弹幕效果。  从直观上,弹幕效果就是在一...
    99+
    2022-06-06
    动画 Android
  • HTML5中怎么用Canvas实现文字动画特效
    本篇内容介绍了“HTML5中怎么用Canvas实现文字动画特效”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • CSS动画教程:手把手教你实现缩放渐变特效
    在现代Web设计中,动画效果是吸引用户注意力和增强用户体验的重要元素之一。CSS动画是一种基于CSS样式属性的动画效果,可以通过改变元素的样式属性值来实现动态效果。在本文中,我们将手把手地教你如何使用CSS动画实现缩放渐变特效,同时附带具体...
    99+
    2023-10-21
    CSS动画 缩放 渐变
  • Android实现Activity界面切换添加动画特效的方法
    本文以实例形式展示了Android实现Activity界面切换添加动画特效的方法,对于Android程序设计人员来说有很好的参考借鉴价值。具体方法如下: 了解Android程序...
    99+
    2022-06-06
    方法 activity 动画 Android
  • Android实现游戏中的渐隐和渐现动画效果
    1实现渐隐的动画 在程序中实现可以通过如下方式 View view = new View(context);//执行动画的View AlphaAnimation aa = n...
    99+
    2022-06-06
    动画 Android
  • Android中怎么使用ListView实现滚轮动画效果
    今天就跟大家聊聊有关Android中怎么使用ListView实现滚轮动画效果,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。   private ...
    99+
    2023-05-31
    android listview
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作