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

React Native項目中使用Lottie動畫的方法

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

Lottie是Airbnb開源的一個面向iOS、Android、React Native的動畫庫,能加載Adobe After Effects導出的動畫,并且能讓原生App像使用靜態(tài)素材一樣使用這些動畫,完美實現(xiàn)炫酷的動畫效果。
使用流程上,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'

然后,再執(zhí)行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所需的原生開發(fā)環(huán)境就搭建好了。接下來,只需要使用Lottie提供的LottieView組件加載前面導出的Json文件即可,如下所示。

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

export default LottieAnimPage;

同時,LottieView組件還提供了一個progress參數(shù),用來給動畫添加一些額外的效果。例如,下面是使用progress實現(xià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}  />
    )
}

可以看到,實現(xiàn)Lottie動畫效果的核心還在如何制作Lottie原動畫。首先,我們需要安裝Adobe After Effects,并使用它制作Lottie原動畫,然后再安裝Bodymovin插件,最后將Lottie原動畫導出為動畫的Json文件。如果沒有安裝Adobe After Effects,可以到Adobe的官網(wǎng)下載安裝,如圖3-7所示。

退出After Effects,下載最新的ZXP Installer進行安裝。安裝完成之后,再下載最新的Bodymovin插件。打開ZXP Installer,將Bodymovin插件拖到ZXP Installer的窗口中進行安裝,如圖3-8所示。

接下來,打開After Effects,依次點擊【W(wǎng)indow】→【Extensions】就可以看到Bodymovin插件。當然,Lottie官網(wǎng)也提供了很多炫酷的動畫,可以直接下載這些動畫的Json文件就可以使用,如圖3-9所示。

到此這篇關于React Native 實現(xiàn)Lottie動畫的文章就介紹到這了,更多相關React Native Lottie動畫內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

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

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

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

    React RenderProps模式超詳細講解

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

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

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

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

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

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

    這篇文章主要介紹了Next.js實現(xiàn)react服務器端渲染的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    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'問題,本文給大家分享解決方案,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • React中 Zustand狀態(tài)管理庫的使用詳解

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

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

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

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

    React傳值 組件傳值 之間的關系詳解

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

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

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

最新評論

江安县| 和静县| 柳河县| 赫章县| 龙里县| 松溪县| 抚远县| 兴和县| 耒阳市| 青田县| 长沙市| 冕宁县| 宁海县| 金门县| 陆丰市| 田阳县| 吉木乃县| 五莲县| 高要市| 重庆市| 阿勒泰市| 长治县| 新民市| 上犹县| 临湘市| 临邑县| 罗源县| 修水县| 铜梁县| 金沙县| 赤壁市| 岳西县| 黄石市| 盘锦市| 新巴尔虎右旗| 长武县| 凯里市| 龙游县| 绥中县| 那曲县| 六枝特区|