- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如何为Flutter中的小部件制作动画,如下图所示:
假设我有一条简单的曲线:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SamplePath(),
);
}
}
class SamplePath extends StatefulWidget {
@override
State<StatefulWidget> createState() => _SamplePathState();
}
class _SamplePathState extends State<SamplePath> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: CustomPaint( //
size: Size(MediaQuery.of(context).size.width, 300),
painter: MyPainter(),
),
),
);
}
}
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()
..color = Colors.red
..style = PaintingStyle.stroke
..strokeWidth = 8.0;
Path path = Path();
path.moveTo(0, size.height / 2);
path.quadraticBezierTo(size.width / 2, size.height, size.width, size.height / 2);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter old) {
return false;
}
}
Container
或
CustomePaint
的动画。我该怎么办?
最佳答案
这是我的问题的答案。感谢pskink
提及PathMetric
import 'dart:ui';
import 'package:flutter/material.dart';
class SampleAnimation extends StatefulWidget{
SampleAnimation();
@override
State<StatefulWidget> createState() {
return SampleAnimationState();
}
}
class SampleAnimationState extends State<SampleAnimation> with SingleTickerProviderStateMixin {
AnimationController _controller;
Animation _animation;
Path _path;
@override
void initState() {
_controller = AnimationController(vsync: this,duration: Duration(milliseconds: 5000));
super.initState();
_animation = Tween(begin: 0.0,end: 1.0).animate(_controller)
..addListener((){
setState(() {
});
});
_controller.forward();
_path = drawPath();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
Positioned(
top: 0,
child: CustomPaint(
painter: PathPainter(_path),
),
),
Positioned(
top: calculate(_animation.value).dy,
left: calculate(_animation.value).dx,
child: Container(
decoration: BoxDecoration(
color: Colors.blueAccent,
borderRadius: BorderRadius.circular(10)
),
width: 10,
height: 10,
),
),
],
),
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
Path drawPath(){
Size size = Size(300,300);
Path path = Path();
path.moveTo(0, size.height / 2);
path.quadraticBezierTo(size.width / 2, size.height, size.width, size.height / 2);
return path;
}
Offset calculate(value) {
PathMetrics pathMetrics = _path.computeMetrics();
PathMetric pathMetric = pathMetrics.elementAt(0);
value = pathMetric.length * value;
Tangent pos = pathMetric.getTangentForOffset(value);
return pos.position;
}
}
class PathPainter extends CustomPainter {
Path path;
PathPainter(this.path);
@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()
..color = Colors.redAccent.withOpacity(0.3)
..style = PaintingStyle.stroke
..strokeWidth = 3.0;
canvas.drawPath(this.path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => true;
}
关于flutter - 在 flutter 中沿着弯曲的路径移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60203515/
我正在使用我的简单 PHP 验证码算法 ( http://www.source.ofitall.com/devel/captcha.php ),我一直在努力尝试调整它以使其更具吸引力和更易于阅读,谷歌
我正在 android 中实现一个 ListView ,它看起来就像这样并滚动 我一直在通过在我的适配器的 getView 中设置膨胀行的布局参数来做到这一点,但由此引发的问题是 ListView 变
我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文
我的Flex应用程序中有数据网格,我使用Arraycollection绑定(bind)数据网格(使用remoteobject方法调用从java类获取数据)。现在我正在数据网格中执行添加/编辑/删除,我
是否可以制作弯曲或拱形形状的矩形。这是我的 jsfiddle https://jsfiddle.net/dibyendu/y8pthz2x/ 。我想使用 d3 使雷达图轴上的这些矩形成为弧形/曲线 最
我有一张代表某个区域海拔的图像。但是制造它的无人机不一定走直线(尽管图像总是矩形的)。我还有每 20 厘米生成的 gps 坐标。 如何“弯曲”这个矩形图像(曲线/马赛克),使其代表无人机实际经过的弯曲
我经历了How to curve the top of a UIView Controller in Swift 并发表看法。它附在下面。我想从我的 View 中删除该背景色。我在 Storyboar
任何人都可以帮助弯曲 View 以达到以下效果。我正在使用自定义 View 组,我想操纵 Canvas 来实现以下效果,谁能帮帮我。 谢谢 最佳答案 你需要知道: Camera Matrix 这是一个
我尝试绘制一些 3D 正方形(在 iPhone 上使用 OpenGL)并让它们旋转,现在它们看起来像一个球体。 http://i618.photobucket.com/albums/tt265/Loy
我想创建一个 div,它是一个按钮,它包含一个国旗的图片和一个国家的 abv,我已经将一些代码放入我想要的内容中,但这不是 Bootstrap 的方式,我'我正在努力解决这个问题,以及如何使用 boo
现在我正在用一系列 View 填充 UIScrollView。需要扭曲 View 以使 UIScrollView 看起来像旋转木马。换句话说,当用户滚动时,它需要像一个圆圈。我以前从未做过类似的事情,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!