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
包。参照
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
链图片转存中…(img-snjVN369-1715511905284)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!