利用AnimationController实现雨滴落下的flutter动画效果。
GitHub - guipie/flutter_demo: flutter 动画效果的一些demo示例。
首先声明一个雨滴对象:
class Particle {double x;double y;double size;double speed;Particle({required this.x, required this.y, required this.size, required this.speed});
}
横纵坐标,雨滴大小,及落下的速度四个属性值。
然后initState的时候去初始化雨滴集合对象,并且去运行动画。
@overridevoid initState() {super.initState();_controller = AnimationController(vsync: this,duration: const Duration(seconds: 10),)..addListener(() {setState(() {_particles.removeWhere((p) => p.y >= MediaQuery.of(context).size.height);_particles.forEach((p) {p.y += p.speed;});_particles.addAll(_generateParticles());});})..repeat();}
repeat是开始向前运行此动画,并在完成时重新启动动画。
_particles是雨滴对象集合,在超出屏幕后自动移除;
_generateParticles()方法是随机生成十滴雨滴,可自行设定,以下是我自己的设定
List<Particle> _generateParticles() {
List<Particle> particles = [];
for (int i = 0; i < 10; i++) {
particles.add(
Particle(
x: Random().nextDouble() * MediaQuery.of(context).size.width,
y: 0,
size: Random().nextDouble() * 2 + 1,
speed: Random().nextDouble() * 5 + 5,
),
);
}
return particles;
}
然后一个雨滴落下的动画就实现了,就这么简单呢。
源码可看GitHub - guipie/flutter_demo: flutter 动画效果的一些demo示例。
利用AnimationController实现雨滴落下的flutter动画效果。相关推荐
- iOS 类似亲宝宝app下拉刷新动画效果
iOS 类似亲宝宝app下拉刷新动画效果,最近看了下这种效果,感觉有点意思.于是就实现了一下. 方案一 采用两个背景View1.View2,三个球ball1,ball2,ball3,将ball1,ba ...
- js实现下拉菜单动画效果
js实现下拉菜单动画效果 <!DOCTYPE html> <html lang="en"> <head><meta charset=&qu ...
- html仿微信拆红包效果旋转,利用React加CSS3实现微信拆红包动画效果实例(代码)...
本篇文章主要介绍了利用React加CSS3实现微信拆红包动画效果实例(代码),具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 微信红包曾经引爆过一系列的营销热潮,相信大家对于这种红包形式并不陌生, ...
- Android按下录音录音动画效果 ,自定义录音、播放动画View
Android按下录音录音动画效果 ,自定义录音.播放动画View https://download.csdn.net/download/abc2522/10327428?spm=1001.2101. ...
- IOS 利用麦克风声音来实现吹裙子的动画效果
前言:闲来无事帮别人写的,利用麦克风声音来实现吹裙子的动画效果,因为录下来的东西不需要播放,所以在停止录音的同时删除文件. 大致步骤: 1.首先需要在plist文件中添加Privacy - Micro ...
- android下拉刷新动画效果代码_vue项目实录:下拉刷新组件的开发及slot的使用
"下拉刷新"和"上滑加载更多"功能在前端.尤其是移动端项目中非常重要,这里笔者由曾经做过的vue项目中的"blink"功能和各位探讨下[下拉 ...
- CSS:文字下波浪线动画效果
之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...
- html怎么在字体中加波浪线,强大的CSS:文字下波浪线动画效果
之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...
- web前端入门到实战:CSS文字下波浪线动画效果
之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...
最新文章
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
- HH SaaS电商系统的拼团系统设计
- python鸭制作类代码_Python动态语言与鸭子类型详解
- v-for获取(循环次数)对象的length长度
- UVa 10394-Twin Primes
- 最简单的基于FFmpeg的移动端例子:IOS HelloWorld
- Linux命令行解析参数之getopt_long
- SaveRasterFile failed: IDLnaMetadata Error:naGetMetadata-GetMetadataJob failed
- int类型转换byte类型
- 一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
- 操作系统与计算机组织基本知识(一)
- 如何自动采集QQ群的共享文件
- 谷歌搜索网站流量_Google搜索升级使网站更难赢得流量
- Python记录程序运行的时间
- 【MATLAB】改变坐标轴范围
- Go语言处理Windows系统的图标ICO文件(下)
- 什么牌子的护眼灯最好?分享四款护眼灯合格的品牌
- 神兽麒麟kylin驾驭指南
- java nio rewind_java.nio.ByteBuffer中的flip()、rewind()、compact()等方法的使用和区别
- jaeger client java_grpc分布式链路跟踪之jaeger
热门文章
- GoLand 失效怎么办
- jquery兄弟标签_jQuery获取父级、兄弟节点的方法
- Android音视频学习系列(六) — 掌握视频基础知识并使用OpenGL ES 2.0渲染YUV数据
- 我打赌五包辣条,如果你知道这四款APP,不管手机再换你总会下载
- mysql5.7 delimiter_percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码)...
- Spring框架浅入
- 【2021最新版】数据结构+算法面试题总结(9+20道题含答案解析)
- 写一个nodejs脚本上传打包dist目录
- Nmap教学视频笔记
- 详解三次握手和四次挥手:遇到心动的女孩时,如何去把握?