📜  Flutter的Rive 动画

📅  最后修改于: 2021-09-02 05:22:22             🧑  作者: Mango

Rive 是一个非常有用的动画工具,可以创建漂亮的动画,我们可以将它们添加到我们的应用程序中。在flutter,我们可以通过编写这么多行代码来添加动画,但这对开发人员来说不是一个好习惯。我们可以使用这个强大的 Rive 动画工具来创建动画,而不是编写代码行来创建动画。请按顺序阅读以下所有要点,以清楚地理解该主题。

脚步:

  • 使用命令提示符创建一个新的Flutter应用程序。要创建新应用程序,请编写flutter create YOUR_APP_NAME并运行此命令。

dart 中的 rive 动画

  • 在 VS Code 或 Android Studio 中打开应用程序。我正在使用 VS 代码。
  • main 中删除默认代码现在dart文件。
  • 现在要创建新动画,请转到 https://rive.app/explore/popular/trending/all 。

dart 中的 rive 动画

  • 您还可以导出由其他一些用户创建的动画。单击任何动画,然后单击“在 Rive 中打开”。然后通过单击导出按钮下载它。
  • 文件扩展名应为.flr ,格式应为二进制。
  • 现在,打开 VS Code 并在应用程序的根目录中创建新文件夹“assets” ,然后粘贴您从rive下载的文件。我在资产文件夹中有 4 个文件。
-android
-assets
    -my.flr
    -teddy.flr
    -test2.flr
    -test3.flr
-build
-ios
-lib
    -main.dart
-test
-web
-pubspec.lock
-pubspec.yaml
-README.md
-rive_flutter.iml
  • 现在,编辑pubspec.yaml文件:
    • 在依赖项中添加rive
    • 在flutter添加资产:

dart 中的 rive 动画

  • 之后,打开主。 dart文件,因为我们将在此文件中编写代码。
  • 删除 main.js 中的所有代码。 dart文件并编写以下代码以向我们的应用程序添加动画。
Dart
import 'package:flutter/material.dart';
import 'package:flare_flutter/flare_actor.dart';
  
void main() => runApp(MyApp());
  
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'GeeksforGeeks',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}
  
class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
  
class _MyHomePageState extends State {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("GeeksForGeeks")),
      body: Container(
        child: ListView(
          children: [
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                width: 700,
                height: 300,
                child: FlareActor(
                  "assets/test3.flr",
                  animation: "day_and_night",
                ),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(10.0),
              child: Container(
                width: 700,
                height: 300,
                child: FlareActor(
                  "assets/my.flr",
                  animation: "left2right",
                ),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                width: 700,
                height: 300,
                child: FlareActor(
                  "assets/teddy.flr",
                  //test, success,idle,fail
                  animation: "success", 
                ),
              ),
            ),
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                width: 700,
                height: 300,
                child: FlareActor(
                  "assets/test2.flr",
                  animation: "Demo Mode",
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}


  • 我们将在主屏幕上显示这些动画。不要忘记在FlareActor Widget 中给出动画的类型,否则你将得不到任何动画效果。
  • 通过在终端中编写命令flutter run来运行应用程序并查看输出。  

输出:

完整代码可在 https://github.com/singhteekam/rive-flutter 上获得。