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 [email protected]

安裝完成之後,可以使用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動畫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: