React NativeプロジェクトでLottieアニメーションを使用する方法

React NativeプロジェクトでLottieアニメーションを使用する方法

Lottie は、Airbnb が開発した iOS、Android、React Native 向けのオープンソース アニメーション ライブラリです。Adobe After Effects からエクスポートされたアニメーションを読み込み、ネイティブ アプリでこれらのアニメーションを静的マテリアルのように使用できるため、クールなアニメーション効果を完璧に実現できます。
使用プロセスとしては、まずLottieアニメーションでAdobe After Effectsを使用してオリジナルのアニメーションを作成し、次に公式のBodymovinプラグインを使用してアニメーションをJsonファイルにエクスポートする必要があります。このJsonファイルは、Lottieが解析する必要があるアニメーションソースファイルです。
React Native プロジェクトで Lottie アニメーションを使用するには、以下に示すように、まず lottie-react-native および lottie-ios プラグインをインストールする必要があります。

糸を追加 lottie-react-native
糸追加 [email protected]

インストールが完了したら、 react-native link コマンドを使用してネイティブ ライブラリの依存関係をリンクできます。もちろん、これに加えて、手動の方法を使用して依存関係を追加することもできます。 CocoaPods を使用する iOS プロジェクトの場合は、次のスクリプト ファイルを追加する必要があります。

ポッド 'lottie-ios'、:path => '../node_modules/lottie-ios'
ポッド 'lottie-react-native'、:path => '../node_modules/lottie-react-native'

次に、pod install コマンドを実行してプラグインをインストールします。ネイティブ Android の場合は、まず android/settings.gradle ファイルに次のコンテンツを追加する必要があります。

':lottie-react-native' を含める
project(':lottie-react-native').projectDir = 新しいファイル(rootProject.projectDir, '../node_modules/lottie-react-

次に、app/build.gradle ファイルを開き、次の依存関係を追加します。

 依存関係 {
  ...
  実装プロジェクト(':lottie-react-native')
  ...
}

最後に、以下に示すように、ReactApplication の getPackages() メソッドに LottiePackage を追加する必要があります。

com.airbnb.android.react.lottie.LottiePackage をインポートします。
    
@オーバーライド
    保護されたリスト<ReactPackage> getPackages() {
      Arrays.<ReactPackage>asList( を返します。
          ... //他のコードは省略 new LottiePackage()
      );
    }
  };

この時点で、Lottie に必要なネイティブ開発環境がセットアップされました。次に、以下に示すように、Lottie が提供する LottieView コンポーネントを使用して、以前にエクスポートした Json ファイルを読み込むだけです。

関数LottieAnimPage(){
    戻る (
      <LottieView source={require('../animations/LottieLogo1.json')} 自動再生ループ />
    )
}

デフォルトの LottieAnimPage をエクスポートします。

同時に、LottieView コンポーネントは、アニメーションに追加の効果を加えるための進行状況パラメータも提供します。たとえば、以下は、progress を使用して同様の効果を実現するサンプル コードです。

関数LottieAnimPage(){

    定数 anim = useRef(新しい Animated.Value(0)).current;

    関数 linearAnim() {
        アニメーション.タイミング(anim, {
            値: 1,
            期間: 5000、
            イージング: Easing.linear、
        })。始める();
    }

    React.useEffect(() => {
        線形アニメーション();
    }, []);

    戻る (
        <LottieView ソース = {require('../animations/TwitterHeart.json')}
                    進行状況 = {アニメーション} />
    )
}

ロッティーアニメーション効果を実現するための核心は、やはりロッティー独自のアニメーションをいかに作るかということにあることがわかります。まず、Adobe After Effects をインストールして、それを使用して Lottie オリジナル アニメーションを作成し、次に Bodymovin プラグインをインストールし、最後に Lottie オリジナル アニメーションをアニメーション化された Json ファイルとしてエクスポートする必要があります。 Adobe After Effects がインストールされていない場合は、図 3-7 に示すように、Adobe の公式 Web サイトからダウンロードしてインストールできます。

After Effects を終了し、最新の ZXP インストーラーをダウンロードしてインストールします。インストールが完了したら、最新の Bodymovin プラグインをダウンロードします。 ZXP インストーラーを開き、図 3-8 に示すように、Bodymovin プラグインを ZXP インストーラー ウィンドウにドラッグしてインストールします。

次に、After Effectsを開き、[ウィンドウ]→[拡張機能]をクリックして、Bodymovinプラグインを表示します。もちろん、Lottie の公式サイトでも多くのクールなアニメーションが提供されており、図 3-9 に示すように、これらのアニメーションの Json ファイルを直接ダウンロードして使用することもできます。

React Native に Lottie アニメーションを実装する記事はこれで終わりです。React Native Lottie アニメーションに関するより詳しい内容は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React NativeのScrollViewプルダウンリフレッシュ効果
  • React NativeのstartReactApplicationメソッドの簡単な分析
  • React Nativeの起動プロセスの詳細分析
  • React Nativeのカスタムルーティング管理に関する深い理解

<<:  Docker CPU 制限の実装

>>:  Hadoop 3.2.0 クラスターの構築に関する一般的な考慮事項

推薦する

JavaScript は、シンプルな虫眼鏡の最も完全なコード分析を実装します (ES5)

この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介...

中国における中国語ドメイン名の人気は新たなクライマックスを迎えた

<br />外交部などの中央政府機関、各レベルの地方政府、その他の国家機関や部門が率先し...

jsを使用してサーバーに写真をアップロードする

この記事の例では、参考のために画像をサーバーにアップロードするためのjsの具体的なコードを共有してい...

CSS 要素で計算されたスタイルを取得します (カスケード/最終スタイル後)

CSS 要素内の計算されたスタイル (つまり、カスケード後の最終的なスタイル) を取得するには、W3...

固定サイドバーを実現するためのJavaScript

固定サイドバーを実装するにはJavaScriptを使用します。参考までに、具体的な内容は次のとおりで...

jQueryはすべてのショッピングカート機能を実装します

目次1. すべて選択2. 商品の数量を増やすか減らす3. 商品の小計を変更する4. 合計と合計額を計...

TinyEditorはシンプルで使いやすいHTML WYSIWYGエディタです

数日前、国産の XHTML エディタを紹介しました。今日は、有名な海外の Web デザイン ブログl...

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

CSS3 テキストシャドウ text-shadow プロパティの詳細な説明

テキストシャドウ text-shadow プロパティの効果: 1. 右下隅の影、左下隅の影、左上隅の...

MySQL データの集約とグループ化

多くの場合、データを実際に取得せずに要約する必要があり、 MySQLこの目的のために特別な関数を提供...

Vueはカードフリップ効果を実現します

この記事では、カードフリップ効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

MySQL データベースでよく使用される SQL ステートメントの詳細と概要

この記事では、MySQL データベースでよく使用される SQL ステートメントを例を使用して説明しま...

HTML テーブル マークアップ チュートリアル (10): セル パディング属性 CELLPADDING

セルのパディングは、セルの内容と境界線の間の距離です。基本的な構文<TABLE セルパディング...

Apache Tomcat と IDEA エディターの統合に関する詳細なチュートリアル

1. Apache Tomcat 公式サイトから Tomcat 圧縮パッケージをダウンロードします。...

ディスクを破壊せずに Linux で dd コマンドを使用する方法

故障したストレージ ドライブからデータを救出する場合でも、アーカイブをリモート ストレージにバックア...