Flutter动画图标插件rive_animated_icon的使用
Flutter动画图标插件rive_animated_icon的使用
简介
rive_animated_icon 是一个Flutter插件,提供了50多个由Rive动画制作的图标。这些图标可以被定制以适应您的偏好。它包括了riveIcon类型、onTap、color等参数,为用户提供了一定程度上的控制。
Icons Sample
示例代码
以下是一个完整的示例demo,展示了如何在Flutter应用中使用rive_animated_icon插件:
import 'package:flutter/material.dart';
import 'package:rive_animated_icon/rive_animated_icon.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Rive Animated Icons',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({
super.key,
});
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: SafeArea(
child: SingleChildScrollView(
child: Center(
child: Wrap(
alignment: WrapAlignment.start,
children: RiveIcon.values
.map((RiveIcon e) => Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
children: [
const SizedBox(
height: 10,
),
RiveAnimatedIcon(
riveIcon: e,
width: 40,
height: 40,
strokeWidth: 3,
loopAnimation: true,
onTap: () {
debugPrint('tapped');
},
onHover: (value) {
debugPrint('value is $value');
},
color: Colors.green,
),
],
),
))
.toList()),
),
)),
);
}
}
必要参数
riveIcon
此参数用于定义来自RiveIcon枚举的图标类型。
可选参数
width
设置图标的宽度。
height
设置图标的高度。
color
设置图标的颜色。
loopAnimation
当此参数设置为true时,图标的动画将循环播放。
onTap
用户点击图标时触发的回调函数。
onHover
鼠标悬停在图标上时触发的回调函数。
splashColor
设置图标点击时的水波纹颜色。
strokeWidth
设置图标的描边宽度。
splashFactory
设置图标的水波纹效果工厂。
mouseCursor
设置鼠标悬停在图标上时的鼠标样式。
enableAbsorbPointer
当此参数设置为true时,禁用图标的所有交互功能。
动画图标描边宽度示例
最佳实践
- 如果Rive动画设置为循环,并且滚动到屏幕外,您可以禁用循环以停止动画并节省资源。同样,当动画回到视图内时,可以重新启用循环。
许可证
Rive Animated Icons遵循MIT许可证,详情请参阅 LICENSE.
动画致谢
所有可用的图标都是在Rive中动画化的,并来源于Rive社区文件。特别感谢所有的动画师!
维护者
以上是关于rive_animated_icon插件的详细介绍和使用方法,希望对您有所帮助!
更多关于Flutter动画图标插件rive_animated_icon的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter动画图标插件rive_animated_icon的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,rive_animated_icon 是一个强大的 Flutter 插件,它允许你使用 Rive 动画图标来增强你的应用界面。Rive 动画图标具有高保真度和流畅性,非常适合用于加载指示器、按钮动画等场景。
以下是一个简单的代码示例,展示如何在 Flutter 应用中使用 rive_animated_icon 插件。
1. 添加依赖
首先,你需要在你的 pubspec.yaml 文件中添加 rive 和 rive_animated_icon 依赖:
dependencies:
flutter:
sdk: flutter
rive: ^0.8.0 # 请检查最新版本号
rive_animated_icon: ^0.3.0 # 请检查最新版本号
然后运行 flutter pub get 来获取这些依赖。
2. 导入包
在你的 Dart 文件中导入必要的包:
import 'package:flutter/material.dart';
import 'package:rive/rive.dart';
import 'package:rive_animated_icon/rive_animated_icon.dart';
3. 使用 RiveAnimatedIcon
下面是一个完整的 Flutter 应用示例,展示如何使用 RiveAnimatedIcon:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Rive Animated Icon Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
late AnimationController _controller;
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(seconds: 1),
vsync: this,
)..repeat(reverse: true);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Rive Animated Icon Demo'),
),
body: Center(
child: RiveAnimatedIcon.asset(
'assets/rive/your_animation.riv', // 替换为你的 Rive 文件路径
animations: ['idle', 'tap'], // 替换为你的动画名称列表
activeAnimation: 'tap', // 默认激活的动画
inactiveAnimation: 'idle', // 默认非激活的动画
controller: _controller,
size: 50.0, // 图标大小
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
// 切换动画状态
_controller.isAnimating
? _controller.stop()
: _controller.reset();
});
},
tooltip: 'Toggle Animation',
child: Icon(Icons.play_arrow),
),
);
}
}
4. 添加 Rive 文件
确保你将 Rive 动画文件(例如 your_animation.riv)放在项目的 assets 文件夹中,并在 pubspec.yaml 中添加相应的资源路径:
flutter:
assets:
- assets/rive/your_animation.riv
5. 运行应用
现在你可以运行你的 Flutter 应用,应该能够看到一个带有 Rive 动画图标的界面。点击浮动操作按钮(FAB)可以切换动画状态。
这个例子展示了如何使用 rive_animated_icon 插件在 Flutter 应用中集成和控制 Rive 动画图标。你可以根据需要调整动画、大小和其他属性。

