美文网首页Flutter圈子FlutterFlutter中文社区
Flutter 使用动画播放一组图片

Flutter 使用动画播放一组图片

作者: TryEnough | 来源:发表于2019-04-23 17:50 被阅读4次

请支持原文:http://tryenough.com/images-animation

效果如下图:

代码

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);
}

请支持原文:http://tryenough.com/images-animation

使用的地方:

ImagesAnimation(w: 100, h: 100, entry: ImagesAnimationEntry(1, 7, "images/men_sport_%s.png")),
//"images/men_sport_%s.png" 表示图片在你本地的路径,%s会被下标代替

相关文章

  • Flutter 使用动画播放一组图片

    请支持原文:http://tryenough.com/images-animation 效果如下图: 代码 请支持...

  • Android动画详解-帧动画

    帧动画就是顺序播放一组预先定义好的图片,就类似于我们观看视频,就是一张一张的图片连续播放。 帧动画的使用很简单,总...

  • 【Flutter】使用flutter_sound进行录音、语音播

    【Flutter】使用flutter_sound进行录音、语音播放及录音时动画处理https://blog.csd...

  • Android动画

    Drawable Animation 帧动画,多张图片循环播放,实现动画效果。 以Xml定义一组帧动画 onesh...

  • APP开发实战85-帧动画

    22 Android动画介绍 22.1帧动画 帧动画是顺序播放一组预先定义好的图片,类似于电影播放,系统提供了An...

  • Android动画插值器Interpolator

    前言 Android常见的三种动画 视图动画之帧动画 帧动画是顺序播放一组预先定义好的图片,类似于电影播放。不同于...

  • iOS 之动画

    一. UIImageView实现动画效果 UIImageView可以添加一组不同帧的图片,来进行播放动画效果.具体...

  • iOS-播放gif动画文件(OC方法)

    iOS-.gif动画文件的播放 前言 播放gif动画的方法有多种: 将gif图片分解成多张图片使用UIImageV...

  • 动画

    前两种属于传统动画 1、帧动画 播放一组预先定义好的图片,图片大的话容易引起OOM 2、补间动画 1、支持四种效果...

  • 多媒体篇

    1.使用 UIImageview的 animationlmages属性播放动画,图片序列中的图片需要具有相同的尺寸...

网友评论

    本文标题:Flutter 使用动画播放一组图片

    本文链接:https://www.haomeiwen.com/subject/wnrbgqtx.html