最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React Native項(xiàng)目中使用Lottie動(dòng)畫的方法

 更新時(shí)間:2021年10月08日 11:37:19   作者:xiangzhihong8  
這篇文章主要介紹了React Native 實(shí)現(xiàn)Lottie動(dòng)畫的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Lottie是Airbnb開源的一個(gè)面向iOS、Android、React Native的動(dòng)畫庫(kù),能加載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命令來(lái)鏈接原生庫(kù)的依賴。當(dāng)然,除此之外,我們還可以使用手動(dòng)的方式來(lái)添加依賴。對(duì)于使用CocoaPods的iOS項(xiàng)目來(lái)說,需要添加如下的腳本文件。

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

然后,再執(zhí)行pod install命令安裝插件即可。對(duì)于原生Android來(lái)說,首先需要在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)境就搭建好了。接下來(lái),只需要使用Lottie提供的LottieView組件加載前面導(dǎo)出的Json文件即可,如下所示。

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

export default LottieAnimPage;

同時(shí),LottieView組件還提供了一個(gè)progress參數(shù),用來(lái)給動(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所示。

接下來(lái),打開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中獲取數(shù)據(jù)的3種方法及優(yōu)缺點(diǎn)

    React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點(diǎn)

    這篇文章主要介紹了React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • React RenderProps模式超詳細(xì)講解

    React RenderProps模式超詳細(xì)講解

    render props是指一種在 React 組件之間使用一個(gè)值為函數(shù)的 prop 共享代碼的技術(shù)。簡(jiǎn)單來(lái)說,給一個(gè)組件傳入一個(gè)prop,這個(gè)props是一個(gè)函數(shù),函數(shù)的作用是用來(lái)告訴這個(gè)組件需要渲染什么內(nèi)容,那么這個(gè)prop就成為render prop
    2022-11-11
  • React Native 中實(shí)現(xiàn)確認(rèn)碼組件示例詳解

    React Native 中實(shí)現(xiàn)確認(rèn)碼組件示例詳解

    這篇文章主要為大家介紹了React Native中實(shí)現(xiàn)確認(rèn)碼組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 解決react中useState狀態(tài)異步更新的問題

    解決react中useState狀態(tài)異步更新的問題

    本文主要介紹了react中useState狀態(tài)異步更新的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Next.js實(shí)現(xiàn)react服務(wù)器端渲染的方法示例

    Next.js實(shí)現(xiàn)react服務(wù)器端渲染的方法示例

    這篇文章主要介紹了Next.js實(shí)現(xiàn)react服務(wù)器端渲染的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-01-01
  • 解決React在安裝antd之后出現(xiàn)的Can''t resolve ''./locale''問題(推薦)

    解決React在安裝antd之后出現(xiàn)的Can''t resolve ''./locale''問題(推薦)

    這篇文章主要介紹了解決React在安裝antd之后出現(xiàn)的Can't resolve './locale'問題,本文給大家分享解決方案,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • React中 Zustand狀態(tài)管理庫(kù)的使用詳解

    React中 Zustand狀態(tài)管理庫(kù)的使用詳解

    Zustand?是一個(gè)非常輕量、簡(jiǎn)潔的狀態(tài)管理庫(kù),旨在為 React 提供簡(jiǎn)便且高效的狀態(tài)管理,相比于 Redux 或 Context API,Zustand 具有更簡(jiǎn)潔、靈活和易于理解的優(yōu)點(diǎn),感興趣的朋友一起看看吧
    2024-12-12
  • 減少react組件不必要的重新渲染實(shí)現(xiàn)方法

    減少react組件不必要的重新渲染實(shí)現(xiàn)方法

    這篇文章主要為大家介紹了減少react組件不必要的重新渲染實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • React傳值 組件傳值 之間的關(guān)系詳解

    React傳值 組件傳值 之間的關(guān)系詳解

    這篇文章主要介紹了React傳值 組件傳值 之間的關(guān)系詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • React?18中的state概念與使用、注意問題解決

    React?18中的state概念與使用、注意問題解決

    state和props類似,都是一種存儲(chǔ)屬性的方式,但是不同點(diǎn)在于state只屬于當(dāng)前組件,其他組件無(wú)法訪問,這篇文章主要介紹了React?18中的state概念與使用、注意問題,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

包头市| 贡觉县| 法库县| 夹江县| 靖边县| 昌江| 乐至县| 龙陵县| 花莲县| 罗源县| 巴里| 靖江市| 怀安县| 开平市| 长兴县| 柳江县| 民丰县| 阿坝县| 紫阳县| 邵阳市| 寻乌县| 郎溪县| 孟州市| 诏安县| 尚志市| 万山特区| 北海市| 桂东县| 乐亭县| 西贡区| 辽阳县| 逊克县| 广平县| 习水县| 建宁县| 永胜县| 手机| 奎屯市| 河北区| 噶尔县| 偏关县|