Flutter SVG动画播放插件svgator_player_flutter的使用
Flutter SVG动画播放插件svgator_player_flutter的使用
插件介绍
SVGator’s animation player implementation for Flutter. 该插件用于在Flutter中播放SVG动画。
使用步骤
- 下载您的动画项目,从SVGator获取(使用
External
播放器选项)。 - 将
.dart
文件复制到您的项目中(放入主lib
目录或子目录) - 导入文件(导入类和状态以供API使用)
动画大小
除非指定尺寸参数,否则动画SVG组件将填充可用空间。如果组件加载在一个可滚动容器中(如ListView
),则可能需要提供height
参数。
示例代码
import './Test-Robot.dart' as SVGator show TestRobot, TestRobotState;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
GlobalKey<SVGator.TestRobotState>? _SVGatorPlayer = GlobalKey<SVGator.TestRobotState>();
void _eventListener([String? message]) {
print("Message received: $message");
}
void _runCommand(String command, int? param) {
_SVGatorPlayer?.currentState?.runCommand(command, param);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: Column(
children: [
Expanded(
child: SVGator.TestRobot(
height: 310,
key: _SVGatorPlayer,
onMessage: _eventListener,
),
)
],
),
),
);
}
}
更多信息
- SVGator API - Flutter Test App
- SVGator Player JS API Documentation
- Animate Programatically with SVGator
- Export Flutter Animations with SVGator
示例代码示例
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
import 'dart:convert';
import './Parts.dart';
import './EventLog.dart';
import './MediaButtons.dart';
import './Test-Robot.dart' as SVGator show TestRobot, TestRobotState;
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'SVGator - Mobile Player API',
theme: ThemeData(
primarySwatch: MaterialColor(svgatorBlue, svgatorBlueMaterial),
),
home: const MyHomePage(title: 'SVGator - Mobile Player API'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final String _url = 'https://www.svgator.com/help/getting-started/svgator-player-js-api';
GlobalKey<EventLogState> _eventLog = GlobalKey<EventLogState>();
GlobalKey<SVGator.TestRobotState>? _SVGatorPlayer = GlobalKey<SVGator.TestRobotState>();
void _eventListener([String? message]) {
final data = jsonDecode(message ?? '{}');
_eventLog.currentState?.updateLog(data['event'] ?? '', data['offset']);
}
void _runCommand(String command, int? param) {
_SVGatorPlayer?.currentState?.runCommand(command, param);
}
void _launchURL() async {
if (!await launch(_url)) throw 'Could not launch $_url';
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body:
Center(
child: ListView(
padding: const EdgeInsets.symmetric(horizontal: 4, vertical: 4),
children: <Widget>[
logo(),
logTitle('Svgator Player API - Event Log:', context),
EventLog(
key: _eventLog,
),
SVGator.TestRobot(
height: 310,
key: _SVGatorPlayer,
onMessage: _eventListener,
),
MediaButtons(
parentAction: _runCommand,
),
TextButton(
onPressed: _launchURL,
child: const Text(
"Tap here to see SVGator's Full API documentation.",
style: TextStyle(
color: Color(0xFF2f95dc),
fontFamily: 'space-mono',
fontSize: 14,
),
),
),
],
)
),
);
}
}
更多关于Flutter SVG动画播放插件svgator_player_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter SVG动画播放插件svgator_player_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用svgator_player_flutter
插件来播放SVG动画的示例代码。
第一步:添加依赖
首先,你需要在你的pubspec.yaml
文件中添加svgator_player_flutter
的依赖:
dependencies:
flutter:
sdk: flutter
svgator_player_flutter: ^最新版本号 # 请确保使用最新版本号
然后运行flutter pub get
来安装依赖。
第二步:导入依赖
在你的Dart文件中导入svgator_player_flutter
:
import 'package:svgator_player_flutter/svgator_player_flutter.dart';
第三步:使用插件
下面是一个完整的示例,展示如何在Flutter中使用svgator_player_flutter
来播放SVG动画。
import 'package:flutter/material.dart';
import 'package:svgator_player_flutter/svgator_player_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('SVG Animation Example'),
),
body: Center(
child: SvgatorPlayer(
// 这里放置你的SVG动画文件路径(可以是本地资源或网络URL)
svgSource: 'assets/animations/your_animation.svg', // 确保将SVG文件放在正确的位置
// 如果需要控制动画,可以使用以下参数
autoPlay: true, // 是否自动播放
loopCount: SvgatorPlayerLoopCount.indefinite, // 循环次数,indefinite表示无限循环
speed: 1.0, // 播放速度,1.0表示正常速度
// 监听动画状态变化
onStatusChanged: (status) {
print('Animation status: $status');
},
// 监听动画完成
onCompleted: () {
print('Animation completed');
},
),
),
),
);
}
}
注意事项
-
SVG文件:确保你的SVG文件已经放在
assets
文件夹中,并在pubspec.yaml
文件中正确配置资源路径。例如:flutter: assets: - assets/animations/your_animation.svg
-
动画控制:
SvgatorPlayer
提供了多个参数来控制动画的播放,比如autoPlay
、loopCount
和speed
。你可以根据需要进行调整。 -
事件监听:你可以通过
onStatusChanged
和onCompleted
来监听动画的状态变化和完成事件。
运行项目
确保你已经完成了上述步骤,然后运行你的Flutter项目:
flutter run
这样,你就可以在Flutter应用中播放SVG动画了。