[英]How to rotate an image using Flutter AnimationController and Transform?
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星 png 图像,我需要使用 Flutter AnimationController 和 Transformer 旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转 animation 的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?知道如何使用 Flutter AnimationController 和 Transform 旋转图像吗?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
Flutter also has the widget AnimatedRotation (docs) which makes rotating something much easier. Flutter 也有小部件AnimatedRotation (docs) ,这使得旋转东西更容易。
You only need a double to set the state of the rotation.你只需要一个double来设置旋转的state。 It works in a percentage of rotation, if you turn it into degrees, it will be
0.0 = 0deg
, 1.0 = 360deg
它以旋转的百分比工作,如果你把它变成度数,它将是
0.0 = 0deg
, 1.0 = 360deg
double turns = 0.0;
AnimatedRotation(
duration: const Duration(milliseconds: 500),
turns: turns,
child: const Icon(Icons.refresh),
)
To make the rotation happen you only need to update the state, and Flutter will execute the animation automatically要进行轮换,您只需更新 state,Flutter 将自动执行 animation
void _changeRotation() {
setState(() => turns += 1.0 / 8.0);
}
Full example taken from the Flutter docs to rotate the flutter Logo完整示例取自 Flutter 文档以旋转 flutter 徽标
class LogoRotate extends StatefulWidget {
const LogoRotate({Key? key}) : super(key: key);
@override
State<LogoRotate> createState() => LogoRotateState();
}
class LogoRotateState extends State<LogoRotate> {
double turns = 0.0;
void _changeRotation() {
setState(() => turns += 1.0 / 8.0);
}
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: _changeRotation,
child: const Text('Rotate Logo'),
),
Padding(
padding: const EdgeInsets.all(50),
child: AnimatedRotation(
turns: turns,
duration: const Duration(seconds: 1),
child: const FlutterLogo(),
),
),
],
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
Please see the following link this will help you. 请查看以下链接,这将对您有所帮助。 Click here blog !
点击这里博客 !
I have share one code sample for single tick animation it will help you. 我已经为单个刻度动画共享了一个代码示例,它将为您提供帮助。
import 'package:flutter/material.dart';
void main() {
runApp(new ImageRotate());
}
class ImageRotate extends StatefulWidget {
@override
_ImageRotateState createState() => new _ImageRotateState();
}
class _ImageRotateState extends State<ImageRotate>
with SingleTickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(seconds: 7),
);
animationController.repeat();
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 150.0,
width: 150.0,
child: new Image.asset('images/batmanlogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value * 6.3,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
I have star png image and I need to rotate the star using Flutter AnimationController and Transformer.我有星星png图像,我需要使用Flutter AnimationController和Transformer旋转星星。 I couldn't find any documents or example for image rotation animation.
我找不到图像旋转动画的任何文档或示例。
Any idea How to rotate an image using Flutter AnimationController and Transform?任何想法如何使用Flutter AnimationController和Transform旋转图像?
UPDATE:更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
full example just call ImageAnimateRotate( your widget )
完整示例只需调用 ImageAnimateRotate(您的小部件)
class ImageAnimateRotate extends StatefulWidget {
final Widget child;
const ImageAnimateRotate({Key? key, required this.child}) : super(key: key);
@override
_ImageAnimateRotateState createState() => _ImageAnimateRotateState();
}
class _ImageAnimateRotateState extends State<ImageAnimateRotate> with SingleTickerProviderStateMixin {
late final AnimationController _controller;
@override
void initState() {
super.initState();
_controller = AnimationController(vsync: this, duration: Duration(seconds: 20))..repeat();
}
@override
Widget build(BuildContext context) {
return Center(
child: AnimatedBuilder(
animation: _controller,
builder: (_, child) {
return Transform.rotate(
angle: _controller.value * 2 * math.pi,
child: child,
);
},
child: widget.child,
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.