React Native项目中使用Lottie动画的方法

 更新时间:2021年10月08日 11:37:19   作者:xiangzhihong8  
这篇文章主要介绍了React Native 实现Lottie动画的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Lottie是Airbnb开源的一个面向iOS、Android、React Native的动画库,能加载Adobe After Effects导出的动画,并且能让原生App像使用静态素材一样使用这些动画,完美实现炫酷的动画效果。
使用流程上,Lottie动画需要先使用Adobe After Effects做出原动画,然后再使用官方提供的Bodymovin插件把动画导出成Json文件,而这个Json文件就是Lottie需要解析的动画源文件。
在React Native项目中使用Lottie动画,需要先安装lottie-react-native和lottie-ios插件,如下所示。

yarn add lottie-react-native
yarn add lottie-ios@3.2.3

安装完成之后,可以使用react-native link命令来链接原生库的依赖。当然,除此之外,我们还可以使用手动的方式来添加依赖。对于使用CocoaPods的iOS项目来说,需要添加如下的脚本文件。

pod 'lottie-ios', :path => '../node_modules/lottie-ios'
pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'

然后,再执行pod install命令安装插件即可。对于原生Android来说,首先需要在android/settings.gradle文件中添加如下内容。

include ':lottie-react-native'
project(':lottie-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/lottie-react-

接着,打开app/ build.gradle文件添加如下依赖。

 dependencies {
  ...
  implementation project(':lottie-react-native')
  ...
}

最后,还需要将LottiePackage添加到ReactApplication的getPackages()方法中,如下所示。

import com.airbnb.android.react.lottie.LottiePackage;
    
@Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          ...  //省略其他代码
          new LottiePackage()
      );
    }
  };

到此,Lottie所需的原生开发环境就搭建好了。接下来,只需要使用Lottie提供的LottieView组件加载前面导出的Json文件即可,如下所示。

function LottieAnimPage(){
    return (
      <LottieView source={require('../animations/LottieLogo1.json')} autoPlay loop />
    )
}

export default LottieAnimPage;

同时,LottieView组件还提供了一个progress参数,用来给动画添加一些额外的效果。例如,下面是使用progress实现点赞效果的示例代码。

function LottieAnimPage(){

    const anim = useRef(new Animated.Value(0)).current;

    function linearAnim() {
        Animated.timing(anim, {
            toValue: 1,
            duration: 5000,
            easing: Easing.linear,
        }).start();
    }

    React.useEffect(() => {
        linearAnim();
    }, []);

    return (
        <LottieView source={require('../animations/TwitterHeart.json')}
                    progress={anim}  />
    )
}

可以看到,实现Lottie动画效果的核心还在如何制作Lottie原动画。首先,我们需要安装Adobe After Effects,并使用它制作Lottie原动画,然后再安装Bodymovin插件,最后将Lottie原动画导出为动画的Json文件。如果没有安装Adobe After Effects,可以到Adobe的官网下载安装,如图3-7所示。

退出After Effects,下载最新的ZXP Installer进行安装。安装完成之后,再下载最新的Bodymovin插件。打开ZXP Installer,将Bodymovin插件拖到ZXP Installer的窗口中进行安装,如图3-8所示。

接下来,打开After Effects,依次点击【Window】→【Extensions】就可以看到Bodymovin插件。当然,Lottie官网也提供了很多炫酷的动画,可以直接下载这些动画的Json文件就可以使用,如图3-9所示。

到此这篇关于React Native 实现Lottie动画的文章就介绍到这了,更多相关React Native Lottie动画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React基于RBAC的权限控制案例讲解

    React基于RBAC的权限控制案例讲解

    这篇文章主要介绍了React基于RBAC的权限控制,通过定义角色和权限、编写权限检查函数以及在路由、组件和选择控件中使用这些函数,可以灵活地控制应用中的访问权限,需要的朋友可以参考下
    2024-05-05
  • react中使用Modal.confirm数据不更新的问题完美解决方案

    react中使用Modal.confirm数据不更新的问题完美解决方案

    这篇文章主要介绍了react中使用Modal.confirm数据不更新的问题解决方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • React 使用Hooks简化受控组件的状态绑定

    React 使用Hooks简化受控组件的状态绑定

    这篇文章主要介绍了React 使用Hooks简化受控组件的状态绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • React Hook父组件如何获取子组件的数据/函数

    React Hook父组件如何获取子组件的数据/函数

    这篇文章主要介绍了React Hook父组件如何获取子组件的数据/函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • React实现下拉框的key,value的值同时传送

    React实现下拉框的key,value的值同时传送

    这篇文章主要介绍了React实现下拉框的key,value的值同时传送方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 简单分析React中的EffectList

    简单分析React中的EffectList

    这篇文章主要简单分析了React中的EffectList,帮助大家更好的理解和学习使用React进行前端开发,感兴趣的朋友可以了解下
    2021-04-04
  • React复制到剪贴板的示例代码

    React复制到剪贴板的示例代码

    本篇文章主要介绍了React复制到剪贴板的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • React经典面试题之倒计时组件详解

    React经典面试题之倒计时组件详解

    这些天也都在面试,面试的内容也大多千篇一律,无外乎vue、react这些框架的一些原理,和使用方法,但是也遇到些有趣的题目,这篇文章主要给大家介绍了关于React经典面试题之倒计时组件的相关资料,需要的朋友可以参考下
    2022-03-03
  • 详解React 条件渲染

    详解React 条件渲染

    这篇文章主要介绍了React 条件渲染的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • React星星评分组件的实现

    React星星评分组件的实现

    评分插件在购物的应用中经常可以看得到,但是用着别人的总是没有自己写的顺手,本文就使用React实现星星评分组件,感兴趣的可以了解一下
    2021-06-06

最新评论