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!
推薦閱讀:
- Lottie動畫前端開發使用技巧
- Android Lottie實現中秋月餅變明月動畫特效實例
- JS實現微信"炸屎"大作戰功能
- 搭建React Native熱更新平臺的詳細過程
- React Native采用Hermes熱更新打包方案詳解