日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flutter实现帧动画

發(fā)布時間:2024/4/11 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flutter实现帧动画 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import 'package:flutter/material.dart';// 幀動畫Image class FrameAnimationImage extends StatefulWidget {final List<String> _assetList;final double width;final double height;int interval = 200;FrameAnimationImage(this._assetList, {this.width, this.height, this.interval});@overrideState<StatefulWidget> createState() {return _FrameAnimationImageState();} }class _FrameAnimationImageState extends State<FrameAnimationImage>with SingleTickerProviderStateMixin {// 動畫控制Animation<double> _animation;AnimationController _controller;int interval = 200;@overridevoid initState() {super.initState();if (widget.interval != null) {interval = widget.interval;}final int imageCount = widget._assetList.length;final int maxTime = interval * imageCount;// 啟動動畫controller_controller = new AnimationController(duration: Duration(milliseconds: maxTime), vsync: this);_controller.addStatusListener((AnimationStatus status) {if(status == AnimationStatus.completed) {_controller.forward(from: 0.0); // 完成后重新開始}});_animation = new Tween<double>(begin: 0, end: imageCount.toDouble()).animate(_controller)..addListener(() {setState(() {// the state that has changed here is the animation object’s value});});_controller.forward();}@overridevoid dispose() {_controller.dispose();super.dispose();}@overrideWidget build(BuildContext context) {int ix = _animation.value.floor() % widget._assetList.length;List<Widget> images = [];// 把所有圖片都加載進內(nèi)容,否則每一幀加載時會卡頓for (int i = 0; i < widget._assetList.length; ++i) {if (i != ix) {images.add(Image.asset(widget._assetList[i],width: 0,height: 0,));}}images.add( Image.asset(widget._assetList[ix],width: widget.width,height: widget.height,) );return Stack(alignment: AlignmentDirectional.center,children: images);} }

總結(jié)

以上是生活随笔為你收集整理的Flutter实现帧动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。