当前位置: 首页 > news >正文

flutter开发实战-显示本地图片网络图片及缓存目录图片

flutter开发实战-显示本地图片网络图片及缓存目录图片

在最近开发中碰到了需要显示缓存目录图片,这里顺便整理一下,显示本地图片、网络图片、缓存目录图片的方法。

一、工程本地图片显示

  • 1 在项目根目录下创建名为 images文件夹,也可以将images放在asserts文件夹下
  • 2.在pubspec.yaml中配置images相关的路径,并执行pub get 使配置的文件生效

在pubspec.yaml文件中

# The following section is specific to Flutter.
flutter:# The following line ensures that the Material Icons font is# included with your application, so that you can use the icons in# the material Icons class.uses-material-design: trueassets:- assets/images/- assets/images/common/- assets/images/icons/

调用本地图片显示代码


Widget _buildLoadingWidget(BuildContext context) {return ImageHelper.wrapAssetAtImages("icons/ic_toast_loading.png",width: 50.0,height: 50.0,);}// ImageHelper.wrapAssetAtImages
static Image wrapAssetAtImages(String name,{double? width, double? height, BoxFit? fit}) {return Image.asset("assets/images/" + name,width: width,height: height,fit: fit,errorBuilder: (context, url, error) =>imageErrorHolder(width: width, height: height),);}

还可以使用AssetImage及Image.asset


Image(image: AssetImage("assets/images/icons/ic_toast_loading.png"),width: 100.0
);Image.asset("assets/images/icons/ic_toast_loading.png",width: 100.0
);

二、显示网络图片

网络图片显示,使用NetworkImage 可以加载网络图片


Image(image: NetworkImage("imageUrl"),width: 100.0,
)

使用Image.network

Image.network("https://avatars2.githubusercontent.com/u/20411648?s=460&v=4",width: 100.0,
)

使用cached_network_image插件实现加载图片

// 处理网络图片的urlstatic Widget imageNetwork({required String imageUrl,double? width,double? height,BoxFit? fit,Widget? placeholder,Widget? errorHolder}) {double? cacheWidth;if (width != null) {cacheWidth = width * 2.0;}double? cacheHeight;if (height != null) {cacheHeight = height * 2.0;}if (!(imageUrl.isNotEmpty && imageUrl.startsWith("http"))) {return Container();}String aCropImageUrl = ImageHelper.formatImageUrl(imageUrl: imageUrl, width: cacheWidth, height: cacheHeight);return CachedNetworkImage(maxWidthDiskCache: cacheWidth?.round(),maxHeightDiskCache: cacheHeight?.round(),imageUrl: aCropImageUrl,fit: fit,width: width,height: height,placeholder: (context, url) => (placeholder ?? Container()),errorWidget: (context, url, error) =>(errorHolder ?? imageErrorHolder(width: width, height: height)),);}static Widget imageErrorHolder({double? width, double? height}) {return Container(width: width,height: height,);}static Widget placeHolder({double? width, double? height}) {return SizedBox(width: width,height: height,child: CupertinoActivityIndicator(radius: min(10.0, width! / 3)));}

三、加载缓存目录图片

当我们将图片保存到Document、Cache目录下,需要将其显示出来,知道的ImagePath,可以使用File(ImagePath)将图片显示出来。

String? imagePath = picArg!['imagePath'];if (imagePath != null) {return Image.file(File(imagePath!),width: widget.width,height: widget.height,fit: BoxFit.cover,);}

当然也可以实现ImageProvider来处理显示图片问题

四、小结

flutter开发实战-显示本地图片网络图片及缓存目录图片。显示本地图片、网络图片、缓存目录图片的几种方法

学习记录,每天不停进步。

http://www.lryc.cn/news/98293.html

相关文章:

  • 面对未来的算法备案法规:企业需要做哪些准备?
  • iptables的备份和还原
  • easyUI框架学习
  • 加入气压计模组,星斗3号将实现快速三维定位
  • 华为HCIP第二节-------------------------ISIS
  • 在Mac系统下搭建Selenium环境并驱动Chrome浏览器
  • 通过RPM方式安装,升级,卸载,以及配置使用MySQL
  • 六边形架构和分层架构的区别?
  • 一封来自Java学姐的信
  • Mybatis增强版MyBatis-Flex简介
  • MFC第二十一天 CS架构多页面开发与数据交互、CImageList图像列表介绍 、CListCtrl-SetItem设置列表项的方法
  • spring boot--自动化注入组件原理、内嵌tomcat-1
  • 短视频矩阵系统源码---开发技术源码能力
  • 可观测之调用链Skywalking
  • linux上适用的反汇编调试软件(对标od)
  • 基于高斯混合模型聚类的风电场短期功率预测方法(Pythonmatlab代码实现)
  • 【深入了解pytorch】PyTorch循环神经网络(RNN)
  • 电商运营的方法
  • Swift 如何确定 scrollView 已经滑动结束
  • html学习2(css、图像)
  • 微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka
  • Microsoft todo 数据导出
  • SSIS对SQL Server向Mysql数据转发表数据 (二)
  • 【Vue3】reactive 直接赋值会导致 Vue 无法正确地监听到属性的变化,从而无法触发视图更新
  • 服务器出现丢包的原因103.88.35.x
  • pytest study
  • 0基础学习VR全景平台篇 第73篇:VR直播-如何自定义邀请二维码(直播邀请)
  • idea常用技巧/idea常见问题
  • 数据结构---并查集
  • iOS transform rotate总结