はじめに
lottie というパッケージを使えば、簡単にFlutterのアプリに以下のようなリッチなアニメーションを組み込むことができます。これの簡単な使い方とアニメーションの色を動的に変更する方法について記事にしてみました。
使い方
準備
まずは使用するアニメーションを探します。下記サイトから入手可能です(ログイン必要)
今回は こちら を題材に説明します。
Download
> Lottie JSON
でjsonファイルをダウンロードします。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F658739%2Fa672cf10-2a63-3ff4-c1ac-c62ae53fc009.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=8953b499b4931a51549263d685d42a1d)
ダウンロードしたファイルをプロジェクト内に配置し、pubspec.yaml
を編集しておきます。(今回はassetsフォルダを作成しその中にsuccess_check.json
という名前で配置してます。)
flutter:
assets:
- assets/
続けて、パッケージの依存関係も追加しておきます。
dependencies:
lottie: 2.1.0
コード
読み込ませるのは簡単で、Lottie.asset()
で先程配置したjsonファイルのパスを指定するだけでOKです。
import 'package:lottie/lottie.dart';
...
..
.
Widget build(BuildContext context) {
return Center(
child: Lottie.asset('assets/success_check.json'),
);
}
実行結果↓
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F658739%2F9ebd0b6f-1bc9-36e5-907c-b67b113a835b.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=366d8b4c2f1ffe5930249dc171eea352)
動的に色を変更
読み込むアニメーションは実行時にプロパティ(色、不透明度等)を変更することができます。先程のアニメーションの色を実際に変えてみましょう。
まず、色が使用されているレイヤーを探します。今回使用したjsonファイルを開くとlayers
の構成は以下のようになっており、ここから変更したい色が使われている部分を見つけます。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F658739%2F879cf022-63c8-d27d-e407-916dcceec956.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=80d48b32d3f64d0c2969784b676e1648)
次に、アニメーションを読み込む際の引数delegete
でアニメーションのプロパティを変更できるので、これを利用して色を変えます。
ValueDelegate.color
の第1引数には、先程見つけた色が使用されているレイヤーを指定します。([レイヤー名, 要素名]
みたいに指定します)
value
には変更後の色を指定します。
return Center(
child: Lottie.asset(
'assets/success_check.json',
delegates: LottieDelegates(
values: [
ValueDelegate.color(
['Shape Layer 2', '**'],
value: Colors.cyan,
),
ValueDelegate.color(
['Shape Layer 1', '**'],
value: Colors.cyan[100],
)
],
),
),
);
実行した結果が以下になります。色が変わることを確認できました。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F658739%2Fd2b8545c-cbf1-c4fb-8d67-803956b7dc54.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=79d7e8d43cf514e682cd59babe621e08)
これを利用すると、アプリのテーマカラーの変更に合わせてアニメーションの色も変えるみたいなこともできますね。
備考
ライセンス
配布されているアニメーションのライセンスはダウンロードページの下部に記載されており、基本的に Lottie Simple License (FL 9.13.21) です。利用する際は確認しておきましょう。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F658739%2F2b91bfff-78bd-e07d-fa5d-84ebc7b0e817.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4476964269c4aa818b00faba2809bb69)
以上です。