Flutter动画播放插件lottie_player的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter动画播放插件lottie_player的使用

简介

lottie_player 是一个支持在Flutter中播放Lottie动画的插件,适用于Android、iOS和Web平台。该插件允许通过网络URL加载Lottie JSON文件并显示动画。

注意:

  • 该插件不支持 flutter run -d chrome --web-renderer html 命令来运行Web应用,因此请确保使用默认的Web渲染器(CanvasKit)。

logo.png


功能

  • Lottie网络图像输出
    通过网络URL加载Lottie JSON文件并显示动画效果。

output.gif


使用方法

参数说明
参数 默认值 描述
networkUrl 必填 Lottie JSON文件的网络URL,用于加载动画。
width 屏幕宽度 设置动画的宽度,默认为屏幕宽度。
height 屏幕高度 设置动画的高度,默认为屏幕高度。

你可以不传递任何参数,插件会自动使用屏幕的宽度和高度来显示动画。

示例代码

以下是一个完整的示例代码,展示了如何在Flutter应用中使用 lottie_player 插件来播放Lottie动画。

import 'package:flutter/material.dart';
import 'package:lottie_player/lottie_player.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false, // 隐藏调试模式的标志
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Lottie Player Example'), // 设置应用栏标题
        ),
        body: Center(
          child: LottiePlayer(
            networkUrl: 'https://assets5.lottiefiles.com/packages/lf20_i9mtrven.json', // Lottie动画的网络URL
            width: 200, // 设置动画的宽度
            height: 200, // 设置动画的高度
          ),
        ),
      ),
    );
  }
}

更多关于Flutter动画播放插件lottie_player的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter动画播放插件lottie_player的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter中使用lottie_player插件来播放Lottie动画的示例代码。lottie_player是一个流行的Flutter插件,它允许你在应用中轻松集成和播放Lottie动画。

首先,确保你的Flutter项目中已经添加了lottie_player依赖。你可以在pubspec.yaml文件中添加以下依赖:

dependencies:
  flutter:
    sdk: flutter
  lottie_player: ^0.14.0  # 请检查最新版本号并替换

然后运行flutter pub get来安装依赖。

接下来,你可以按照以下步骤在Flutter应用中播放Lottie动画:

  1. 导入必要的包
import 'package:flutter/material.dart';
import 'package:lottie_player/lottie_player.dart';
  1. 准备Lottie动画资源: 确保你的Lottie动画文件(通常是.json格式)已经放置在项目的assets文件夹中,并在pubspec.yaml中声明它们:
flutter:
  assets:
    - assets/animations/your_animation.json
  1. 创建Lottie动画播放器
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Lottie Animation Example'),
        ),
        body: Center(
          child: LottiePlayer.asset(
            'assets/animations/your_animation.json',  // 替换为你的Lottie动画文件路径
            width: 300,  // 设置动画宽度
            height: 300, // 设置动画高度
            loop: true,  // 是否循环播放
            autoPlay: true, // 是否自动播放
          ),
        ),
      ),
    );
  }
}

在这个示例中,LottiePlayer.asset方法用于从项目的assets文件夹中加载Lottie动画。你可以根据需要调整动画的宽度、高度、是否循环播放以及是否自动播放等参数。

  1. 控制动画播放(可选)

如果你需要更精细地控制动画的播放,例如暂停、恢复或重置动画,你可以使用LottiePlayer.networkLottiePlayer.file构造函数与LottieController一起使用。这里是一个使用LottieController的示例:

import 'package:flutter/material.dart';
import 'package:lottie_player/lottie_player.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
  LottieController? _controller;

  @override
  void initState() {
    super.initState();
    _controller = LottieController(
      animationData: 'assets/animations/your_animation.json', // 替换为你的Lottie动画文件路径
      width: 300,
      height: 300,
      loop: true,
      autoPlay: false,
    )..addListener(() {
        setState(() {}); // 更新UI以反映动画状态的变化
      });
  }

  @override
  void dispose() {
    _controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Lottie Animation Example with Controller'),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Center(
              child: LottieBuilder.asset(
                'assets/animations/your_animation.json',
                controller: _controller!,
                builder: (context, animation, child) {
                  return SizedBox.fromSize(
                    size: Size.fromWidthAndHeight(300, 300),
                    child: animation,
                  );
                },
              ),
            ),
            SizedBox(height: 20),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                ElevatedButton(
                  onPressed: () => _controller?.play(),
                  child: Text('Play'),
                ),
                SizedBox(width: 20),
                ElevatedButton(
                  onPressed: () => _controller?.pause(),
                  child: Text('Pause'),
                ),
                SizedBox(width: 20),
                ElevatedButton(
                  onPressed: () => _controller?.reset(),
                  child: Text('Reset'),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个LottieController实例来控制动画的播放。通过LottieBuilder,我们可以将动画与控制器关联起来,并根据需要更新UI。我们还添加了三个按钮来控制动画的播放、暂停和重置。

希望这些代码示例能帮助你在Flutter项目中成功集成和使用lottie_player插件来播放Lottie动画!

回到顶部