Flutter动画效果插件new_im_animations的使用
Flutter动画效果插件new_im_animations的使用
im_animations
关于
im_animations 是一个不断增长的动画小部件集合,这些小部件既酷炫又优雅,并且性能优化。
反馈
如果您有任何反馈,请在这里提交问题:[反馈链接]。请支持并喜欢此项目。
可用的动画
动画名称 | 描述 | 示例 | 版本 |
---|---|---|---|
ColorSonar | 显示其子组件周围的颜色声波图案 | 0.1.1 | |
Sonar | 显示其子组件周围的声波图案 | 0.1.0 | |
HeartBeat | 对其子组件应用心跳效果 | 0.1.0 | |
Fade | 淡入淡出其子组件 | 0.1.0 | |
Rotate | 顺时针或逆时针旋转其子组件 | 0.1.0 |
使用说明
- 导入
package:im_animations/im_animations.dart
并使用任何动画。 - ColorSonar 在外层颜色比内层颜色更浅时看起来更好。
示例代码
import 'package:flutter/material.dart';
import 'package:new_im_animations/im_animations.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'im_animations',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: Homepage(),
);
}
}
class Homepage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 30),
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(5.0),
),
child: Text(
"Rotate",
style: TextStyle(
color: Colors.white,
),
),
),
Container(
margin: EdgeInsets.all(5.0),
child: Sonar(
radius: 100,
child: CircleAvatar(
backgroundImage: AssetImage('assets/avatars/man.png'),
radius: 100,
),
),
),
],
),
),
),
);
}
}
// ---------------------COLOR SONAR------------------------------//
class ColorSonarDemo extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: ColorSonar(
// wavesDisabled: true,
// waveMotion: WaveMotion.synced,
contentAreaRadius: 48.0,
waveFall: 15.0,
// waveMotionEffect: Curves.elasticIn,
waveMotion: WaveMotion.synced,
// duration: Duration(seconds: 5),
child: CircleAvatar(
radius: 48.0,
backgroundImage: AssetImage('assets/avatars/man.png'),
),
),
),
);
}
}
完整示例
主页 (Homepage
)
class Homepage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 5.0, horizontal: 30),
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(5.0),
),
child: Text(
"Rotate",
style: TextStyle(
color: Colors.white,
),
),
),
Container(
margin: EdgeInsets.all(5.0),
child: Sonar(
radius: 100,
child: CircleAvatar(
backgroundImage: AssetImage('assets/avatars/man.png'),
radius: 100,
),
),
),
],
),
),
),
);
}
}
ColorSonar 动画示例 (ColorSonarDemo
)
class ColorSonarDemo extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: ColorSonar(
// wavesDisabled: true,
// waveMotion: WaveMotion.synced,
contentAreaRadius: 48.0,
waveFall: 15.0,
// waveMotionEffect: Curves.elasticIn,
waveMotion: WaveMotion.synced,
// duration: Duration(seconds: 5),
child: CircleAvatar(
radius: 48.0,
backgroundImage: AssetImage('assets/avatars/man.png'),
),
),
),
);
}
}
更多关于Flutter动画效果插件new_im_animations的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter动画效果插件new_im_animations的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter动画效果插件new_im_animations
的示例代码。这个插件提供了一系列预定义的动画效果,可以帮助你快速实现丰富的用户界面动画。
首先,确保你的Flutter项目已经添加了new_im_animations
依赖。你可以在pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter:
sdk: flutter
new_im_animations: ^0.x.x # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你可以在你的Dart文件中使用这些动画效果。以下是一个简单的示例,展示了如何使用new_im_animations
插件中的FadeIn
动画效果:
import 'package:flutter/material.dart';
import 'package:new_im_animations/new_im_animations.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('new_im_animations Demo'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// 使用FadeIn动画效果
FadeIn(
child: Container(
width: 200,
height: 200,
color: Colors.amber,
child: Center(
child: Text(
'Fade In Animation',
style: TextStyle(fontSize: 24, color: Colors.black),
),
),
),
// 动画开始延迟时间(可选)
delay: Duration(seconds: 1),
// 动画持续时间(可选)
duration: Duration(seconds: 2),
),
SizedBox(height: 20),
// 你可以在这里添加更多的动画效果,比如 SlideIn, ScaleIn, RotateIn 等
// SlideIn(
// child: ...,
// direction: SlideInDirection.LEFT,
// delay: Duration(seconds: 2),
// duration: Duration(seconds: 1),
// ),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个使用FadeIn
动画效果的容器。FadeIn
动画效果会使容器从完全透明逐渐变为完全不透明。你可以通过调整delay
和duration
参数来控制动画的开始延迟时间和持续时间。
new_im_animations
插件提供了多种动画效果,例如SlideIn
、ScaleIn
、RotateIn
等,你可以根据需求选择合适的动画效果,并参考官方文档获取更多详细信息和参数配置。
希望这个示例能帮助你快速上手new_im_animations
插件的使用!