React Native項(xiàng)目中使用Lottie動(dòng)畫的方法
Lottie是Airbnb開源的一個(gè)面向iOS、Android、React Native的動(dòng)畫庫,能加載Adobe After Effects導(dǎo)出的動(dòng)畫,并且能讓原生App像使用靜態(tài)素材一樣使用這些動(dòng)畫,完美實(shí)現(xiàn)炫酷的動(dòng)畫效果。
使用流程上,Lottie動(dòng)畫需要先使用Adobe After Effects做出原動(dòng)畫,然后再使用官方提供的Bodymovin插件把動(dòng)畫導(dǎo)出成Json文件,而這個(gè)Json文件就是Lottie需要解析的動(dòng)畫源文件。
在React Native項(xiàng)目中使用Lottie動(dòng)畫,需要先安裝lottie-react-native和lottie-ios插件,如下所示。
yarn add lottie-react-native yarn add lottie-ios@3.2.3
安裝完成之后,可以使用react-native link命令來鏈接原生庫的依賴。當(dāng)然,除此之外,我們還可以使用手動(dòng)的方式來添加依賴。對(duì)于使用CocoaPods的iOS項(xiàng)目來說,需要添加如下的腳本文件。
pod 'lottie-ios', :path => '../node_modules/lottie-ios' pod 'lottie-react-native', :path => '../node_modules/lottie-react-native'
然后,再執(zhí)行pod install命令安裝插件即可。對(duì)于原生Android來說,首先需要在android/settings.gradle文件中添加如下內(nèi)容。
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所需的原生開發(fā)環(huán)境就搭建好了。接下來,只需要使用Lottie提供的LottieView組件加載前面導(dǎo)出的Json文件即可,如下所示。
function LottieAnimPage(){ return ( <LottieView source={require('../animations/LottieLogo1.json')} autoPlay loop /> ) } export default LottieAnimPage;
同時(shí),LottieView組件還提供了一個(gè)progress參數(shù),用來給動(dòng)畫添加一些額外的效果。例如,下面是使用progress實(shí)現(xiàn)點(diǎn)贊效果的示例代碼。
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} /> ) }
可以看到,實(shí)現(xiàn)Lottie動(dòng)畫效果的核心還在如何制作Lottie原動(dòng)畫。首先,我們需要安裝Adobe After Effects,并使用它制作Lottie原動(dòng)畫,然后再安裝Bodymovin插件,最后將Lottie原動(dòng)畫導(dǎo)出為動(dòng)畫的Json文件。如果沒有安裝Adobe After Effects,可以到Adobe的官網(wǎng)下載安裝,如圖3-7所示。
退出After Effects,下載最新的ZXP Installer進(jìn)行安裝。安裝完成之后,再下載最新的Bodymovin插件。打開ZXP Installer,將Bodymovin插件拖到ZXP Installer的窗口中進(jìn)行安裝,如圖3-8所示。
接下來,打開After Effects,依次點(diǎn)擊【W(wǎng)indow】→【Extensions】就可以看到Bodymovin插件。當(dāng)然,Lottie官網(wǎng)也提供了很多炫酷的動(dòng)畫,可以直接下載這些動(dòng)畫的Json文件就可以使用,如圖3-9所示。
到此這篇關(guān)于React Native 實(shí)現(xiàn)Lottie動(dòng)畫的文章就介紹到這了,更多相關(guān)React Native Lottie動(dòng)畫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
react中使用Modal.confirm數(shù)據(jù)不更新的問題完美解決方案
這篇文章主要介紹了react中使用Modal.confirm數(shù)據(jù)不更新的問題解決方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09React 使用Hooks簡(jiǎn)化受控組件的狀態(tài)綁定
這篇文章主要介紹了React 使用Hooks簡(jiǎn)化受控組件的狀態(tài)綁定,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù)
這篇文章主要介紹了React Hook父組件如何獲取子組件的數(shù)據(jù)/函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09React實(shí)現(xiàn)下拉框的key,value的值同時(shí)傳送
這篇文章主要介紹了React實(shí)現(xiàn)下拉框的key,value的值同時(shí)傳送方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08React經(jīng)典面試題之倒計(jì)時(shí)組件詳解
這些天也都在面試,面試的內(nèi)容也大多千篇一律,無外乎vue、react這些框架的一些原理,和使用方法,但是也遇到些有趣的題目,這篇文章主要給大家介紹了關(guān)于React經(jīng)典面試題之倒計(jì)時(shí)組件的相關(guān)資料,需要的朋友可以參考下2022-03-03React星星評(píng)分組件的實(shí)現(xiàn)
評(píng)分插件在購(gòu)物的應(yīng)用中經(jīng)??梢钥吹玫剑怯弥鴦e人的總是沒有自己寫的順手,本文就使用React實(shí)現(xiàn)星星評(píng)分組件,感興趣的可以了解一下2021-06-06