@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
包。参照
CachedNetworkImage(
imageUrl: ‘https://github.com/flutter/website/blob/master/_includes/code/layout/lakes/images/lake.jpg?raw=true’,
);
添加placeholder
cached_network_image
的placeholder支持任意组件,比如CircularProgressIndicator
CachedNetworkImage(
先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以扫码领取!!!!
尾声
开发是需要一定的基础的,我是08年开始进入Android这行的,在这期间经历了Android的鼎盛时期,和所谓的Android”凉了“。中间当然也有着,不可说的心酸,看着身边朋友,同事一个个转前端,换行业,其实当时我的心也有过犹豫,但是我还是坚持下来了,这次的疫情就是一个好的机会,大浪淘沙,优胜劣汰。再等等,说不定下一个黄金浪潮就被你等到了。
- 330页 PDF Android核心笔记
- 几十套阿里 、字节跳动、腾讯、华为、美团等公司2020年的面试题
- PDF和思维脑图,包含知识脉络 + 诸多细节
- Android进阶系统学习视频
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!
团等公司2020年的面试题**
[外链图片转存中…(img-MeB38LHq-1711288161622)]
[外链图片转存中…(img-MfNaKs6s-1711288161623)]
- PDF和思维脑图,包含知识脉络 + 诸多细节
[外链图片转存中…(img-pU1chiRY-1711288161623)]
- Android进阶系统学习视频
[外链图片转存中…(img-kW5mwF3y-1711288161623)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可免费领取!