效果如下图:
代码
import 'package:flutter/material.dart';
import 'package:sprintf/sprintf.dart'; //这个是一个拼接字符串的flutter库,主要是为了使用方便,你可以选择不使用,这样的话你需要自己拼接图片路径
class ImagesAnimation extends StatefulWidget {
final double w;
final double h;
final ImagesAnimationEntry entry;
final int durationSeconds;
ImagesAnimation({Key key, this.w : 80, this.h : 80, this.entry, this.durationSeconds : 3}):super(key:key);
@override
_InState createState() {
return _InState();
}
}
class _InState extends State<ImagesAnimation> with TickerProviderStateMixin{
AnimationController _controller;
Animation<int> _animation;
@override
void initState() {
super.initState();
_controller = new AnimationController(vsync: this, duration: Duration(seconds: widget.durationSeconds))
..repeat();
_animation = new IntTween(begin: widget.entry.lowIndex, end: widget.entry.highIndex).animate(_controller);
//widget.entry.lowIndex 表示从第几下标开始,如0;widget.entry.highIndex表示最大下标:如7
}
@override
Widget build(BuildContext context) {
return new AnimatedBuilder(
animation: _animation,
builder: (BuildContext context, Widget child) {
String frame = _animation.value.toString();
return new Image.asset(
sprintf(widget.entry.basePath, [frame]), //根据传进来的参数拼接路径
gaplessPlayback: true, //避免图片闪烁
width: widget.w,
height: widget.h,
);
},
);
}
}
class ImagesAnimationEntry {
int lowIndex = 0;
int highIndex = 0;
String basePath;
ImagesAnimationEntry(this.lowIndex, this.highIndex, this.basePath);
}
使用的地方:
ImagesAnimation(w: 100, h: 100, entry: ImagesAnimationEntry(1, 7, "images/men_sport_%s.png")), //"images/men_sport_%s.png" 表示图片在你本地的路径,%s会被下标代替
热度: 20
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 工具 | 企鹅电竞开发的,用于播放特效动画的实现方案
- 实战|这个炫酷的播放粒子效果,你也可以学会!使用Web动画API制作
- iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码
- Python 播放音乐:使用 mido 编写,播放多声轨 MIDI 文件音乐
- Lotus 云盘 2.2 发布,增加视频转码及在线播放、MP3 播放功能
- 播放器性能优化之路
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
面向对象分析与设计
Grady Booch、Robert A. Maksimchuk、Michael W. Engel、Bobbi J. Young、Jim Conallen、Kelli A. Houston / 王海鹏、潘加宇 / 人民邮电出版社 / 2009-8 / 79.00元
《面向对象分析与设计(第3版)》是UML创始人Grady Booch的代表作之一,书中介绍的概念都基于牢固的理论基础。同时,《面向对象分析与设计(第3版)》又是一本注重实效的书,面向架构师和软件开发者等软件工程实践者的实际需要。《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOA......一起来看看 《面向对象分析与设计》 这本书的介绍吧!