import ‘package:flutter/material.dart’;
void main() => runApp(new ImageDemoApp());
class ImageDemoApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: ‘Image Demo’,
home: new HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
State createState() => new _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: new Text(‘Web Image Demo Page’),),
body: new ListView(children: [
Container(
margin: EdgeInsets.only(bottom: 12.0),
decoration: BoxDecoration(color: Colors.grey),
child: Column(children: [
Image.network(
‘https://raw.githubusercontent.com/flutter/website/master/_includes/code/layout/lakes/images/lake.jpg’,
),
Text(‘Image.network’)
],),
),
Container(
margin: EdgeInsets.only(bottom: 12.0),
decoration: BoxDecoration(color: Colors.grey),
child: Column(children: [
Image.network(
‘https://github.com/flutter/plugins/raw/master/packages/video_player/doc/demo_ipod.gif?raw=true’,
),
Text(‘Image.network Animated Gifs’)
],),
),
],),
);
}
}
有默认占位图和淡入效果
在图片加载过程中,给用户展示一张默认的图片,能提高用户体验。
使用FadeInImage
组件来达到这个功能。FadeInImage
能处理内存中,App资源或者网络上的图片。
加载网络图片
import ‘package:transparent_image/transparent_image.dart’;
FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: ‘https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true’,
);
示例效果
使用FadeInImage.memoryNetwork
import ‘package:flutter/material.dart’;
import ‘package:transparent_image/transparent_image.dart’;
void main() => runApp(new FadeInImageDemoApp());
class FadeInImageDemoApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: ‘Image Demo’,
home: new HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
State createState() => new _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: new Text(‘Fade In Image Demo Page’),),
body: Stack(
children: [
Center(child: CircularProgressIndicator()),
Center(child: FadeInImage.memoryNetwork(
image: ‘https://raw.githubusercontent.com/flutter/website/master/_includes/code/layout/lakes/images/lake.jpg’,
placeholder: kTransparentImage/* 透明图片 */,)),
],
),
);
}
}
使用应用内的图片来做占位图
使用FadeInImage.assetNetwork
代码
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(title: new Text(‘Fade In Image Demo Page’),),
body: Center(child: FadeInImage.assetNetwork(
image: ‘https://raw.githubusercontent.com/flutter/website/master/_includes/code/layout/lakes/images/lake.jpg’,
placeholder: ‘images/birds.gif’ /* 指定gif */,)),
);
}
}
使用缓存图片
使用cached_network_image
包。参照
Android高级架构师
由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记。
- 330页PDF Android学习核心笔记(内含上面8大板块)
-
Android学习的系统对应视频
-
Android进阶的系统对应学习资料
- Android BAT部分大厂面试题(有解析)
好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
ndroid学习的系统对应视频**
- Android进阶的系统对应学习资料
[外链图片转存中…(img-GcrAMALo-1714698657458)]
- Android BAT部分大厂面试题(有解析)
[外链图片转存中…(img-xMxULSgD-1714698657459)]
好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!