会写这篇文章是因为当时正在修 行动装置应用开发 这门课,学习过 Flutter 跟 Dart 语言,刚好教到显示图片的部分,然後因为 Flutter 自带的 Image.network
虽然能显示 GIF 图片,但是只会播放一次,无法做到重复播放,所以在参考完这篇 Flutter开发实战系列-控制GIF播放 後,总算是能够让网路抓到的 GIF 图片达成重复播放的效果,特此撰写本篇文章作为纪录以方便後续复查,虽然後面没有机会再用到,但也算是个不错的经验。
在 Flutter 专案的 lib 资料夹内(即 main.dart
所在的资料夹内),建立 gif_image.dart
档案,将Flutter_Demo/lib/magic/gif_image.dart 的程序码贴在 gif_image.dart
档案里面。
然後在 main.dart
内引入:
import 'package:flutter/material.dart';
import 'gif_image.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Test',
home: Scaffold(
appBar: AppBar(
title: Text('GIF Auto Reload Test'),
),
body: HomeBody(),
),
);
}
}
class HomeBody extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: GIFtest(),
);
}
}
class GIFtest extends StatefulWidget {
@override
_GIFtestState createState() => _GIFtestState();
}
class _GIFtestState extends State<GIFtest> {
String picRes1 =
"https://i.pinimg.com/originals/96/02/e4/9602e410f5cda88aaa033d2658e2386a.gif";
int repetitionCount = -1;
Duration duration = Duration(seconds: 1);
GifNetworkImage gifNetworkImage;
@override
void initState() {
super.initState();
gifNetworkImage = GifNetworkImage(
picRes1,
repetitionCount: repetitionCount,
replayDuration: duration,
);
}
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
GifImage.gif(image: gifNetworkImage),
],
);
}
@override
void dispose() {
super.dispose();
gifNetworkImage?.dispose();
}
}
<<: 每个人都该学的30个Python技巧|技巧 9:快速建立数列—range函式(字幕、衬乐、练习)
前面所讲到的 Message event 都是要等使用者做出操作後才会被动的回应,现在要是我们想要推...
今天大概会聊到的范围 Android View 前两天来回进出了公司楼下的 7-11 两三次,每次...
路由 默认网关:将本地讯息经由路由连接出去 显示路由表指令:route print,netstat ...
什麽是 Singleton Pattern? 整个程序运作只会有此一个物件,不会创建第二个重复的物件...
我们当初是先决定题目才开始想要用什麽技术做的 最开始其实有想了两三个 有关於区块链的 ai的等等一些...