flutter - 如何为在屏幕上移动的图像设置动画?
问题描述
我有一个固定大小的图像(一张扑克牌),我想编写代码,以便用户看到图像从屏幕的一个部分滑到另一个部分(就像一张正在处理的牌并在表面上移动)。如果可能的话,最好以对不同屏幕尺寸有适度响应的方式这样做。
我所看到或了解的大部分内容都涉及英雄小部件或动画,其中小部件改变大小但保持在同一位置。我在问一些不同的事情。
解决方案
您可以使用 Flutter 的内置动画 Animation<double>
。在 Flutter 中,Animation 对象对屏幕上的内容一无所知。Animation 是一个抽象类,它了解其当前值及其状态(已完成或已解除)。更常用的动画类型之一是Animation<double>
.
例如:
// lib/main.dart (AnimatedLogo)
class AnimatedLogo extends AnimatedWidget {
AnimatedLogo({Key key, Animation<double> animation})
: super(key: key, listenable: animation);
Widget build(BuildContext context) {
final animation = listenable as Animation<double>;
return Center(
child: Container(
margin: EdgeInsets.symmetric(vertical: 10),
height: animation.value,
width: animation.value,
child: FlutterLogo(),
),
);
}
}
或者您可以将这些包之一导入并使用到您的项目中:
推荐阅读
- c# - 在类c#中反映类函数
- python - 与 numpy 相比,cupy 代码不够快
- linux - 用于多个图像的 ImageMagick V7 和修剪工具
- node.js - 如何使用其 web api 将 FIT 文件上传到 Google FIT?
- c# - 统一创建android项目时出错
- mustache - 总是错误 - “路径”参数必须是字符串、缓冲区或 URL 类型之一。接收类型未定义
- javascript - 如果一个新的 Promise 在外部函数内部 .then() .catch() 添加在哪里?
- javascript - 基于外部变量将信息块推送到数组 X 次
- python - 如何加快稀疏矩阵之间的方差计算
- next.js - 如果进程名称相同,PM2 是否有启动新进程或重新启动现有进程的命令?