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动画效果。相关推荐

  1. iOS 类似亲宝宝app下拉刷新动画效果

    iOS 类似亲宝宝app下拉刷新动画效果,最近看了下这种效果,感觉有点意思.于是就实现了一下. 方案一 采用两个背景View1.View2,三个球ball1,ball2,ball3,将ball1,ba ...

  2. js实现下拉菜单动画效果

    js实现下拉菜单动画效果 <!DOCTYPE html> <html lang="en"> <head><meta charset=&qu ...

  3. html仿微信拆红包效果旋转,利用React加CSS3实现微信拆红包动画效果实例(代码)...

    本篇文章主要介绍了利用React加CSS3实现微信拆红包动画效果实例(代码),具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 微信红包曾经引爆过一系列的营销热潮,相信大家对于这种红包形式并不陌生, ...

  4. Android按下录音录音动画效果 ,自定义录音、播放动画View

    Android按下录音录音动画效果 ,自定义录音.播放动画View https://download.csdn.net/download/abc2522/10327428?spm=1001.2101. ...

  5. IOS 利用麦克风声音来实现吹裙子的动画效果

    前言:闲来无事帮别人写的,利用麦克风声音来实现吹裙子的动画效果,因为录下来的东西不需要播放,所以在停止录音的同时删除文件. 大致步骤: 1.首先需要在plist文件中添加Privacy - Micro ...

  6. android下拉刷新动画效果代码_vue项目实录:下拉刷新组件的开发及slot的使用

    "下拉刷新"和"上滑加载更多"功能在前端.尤其是移动端项目中非常重要,这里笔者由曾经做过的vue项目中的"blink"功能和各位探讨下[下拉 ...

  7. CSS:文字下波浪线动画效果

    之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...

  8. html怎么在字体中加波浪线,强大的CSS:文字下波浪线动画效果

    之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...

  9. web前端入门到实战:CSS文字下波浪线动画效果

    之前有至少5个人在评论中询问我文章中链接hover时候波浪下划线动画是怎么实现的,类似下图gif示意: 这里就介绍下是如何实现的. 有两种实现方法,各有优劣. 一.使用径向渐变纯CSS实现 就是使用径 ...

最新文章

  1. R操作MySQL数据库创建表、删除表、增删改查(CRUD)
  2. HH SaaS电商系统的拼团系统设计
  3. python鸭制作类代码_Python动态语言与鸭子类型详解
  4. v-for获取(循环次数)对象的length长度
  5. UVa 10394-Twin Primes
  6. 最简单的基于FFmpeg的移动端例子:IOS HelloWorld
  7. Linux命令行解析参数之getopt_long
  8. SaveRasterFile failed: IDLnaMetadata Error:naGetMetadata-GetMetadataJob failed
  9. int类型转换byte类型
  10. 一些特殊字符(如:←↑→↓等箭头符号)的Unicode码值
  11. 操作系统与计算机组织基本知识(一)
  12. 如何自动采集QQ群的共享文件
  13. 谷歌搜索网站流量_Google搜索升级使网站更难赢得流量
  14. Python记录程序运行的时间
  15. 【MATLAB】改变坐标轴范围
  16. Go语言处理Windows系统的图标ICO文件(下)
  17. 什么牌子的护眼灯最好?分享四款护眼灯合格的品牌
  18. 神兽麒麟kylin驾驭指南
  19. java nio rewind_java.nio.ByteBuffer中的flip()、rewind()、compact()等方法的使用和区别
  20. jaeger client java_grpc分布式链路跟踪之jaeger

热门文章

  1. GoLand 失效怎么办
  2. jquery兄弟标签_jQuery获取父级、兄弟节点的方法
  3. Android音视频学习系列(六) — 掌握视频基础知识并使用OpenGL ES 2.0渲染YUV数据
  4. 我打赌五包辣条,如果你知道这四款APP,不管手机再换你总会下载
  5. mysql5.7 delimiter_percona MYSQL 5.7.13 5.7.14 MYSQLDUMP 导入报错delimiter (修改MYSQLDUMP代码)...
  6. Spring框架浅入
  7. 【2021最新版】数据结构+算法面试题总结(9+20道题含答案解析)
  8. 写一个nodejs脚本上传打包dist目录
  9. Nmap教学视频笔记
  10. 详解三次握手和四次挥手:遇到心动的女孩时,如何去把握?