导入依赖

  # 图片加载库cached_network_image: ^3.2.1

工具类

import 'dart:math';import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';///Image辅助类
class ImageHelper {///测试用的图片链接static List<String> imageUrl = ["https://img2.baidu.com/it/u=1994380678,3283034272&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657213200&t=d57830e0ca280cc0f87fdbf10b25305b","https://img2.baidu.com/it/u=2860188096,638334621&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657213200&t=cc435e450717a2beb0623dd45752f75f","https://img1.baidu.com/it/u=592570905,1313515675&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657213200&t=1d3fe5d6db1996aa3b45c8636347869d","https://img2.baidu.com/it/u=4244269751,4000533845&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657213200&t=9e3bbec87e572ee9bf269a018c71e0ac","https://img1.baidu.com/it/u=2029513305,2137933177&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657213200&t=fc9d00fc14a8feeb19be958ba428ecba","https://img0.baidu.com/it/u=1694074520,2517635995&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1657472400&t=3b8cee3f0f6a844e69f3b43dff3d8465"];///随机URLstatic String randomUrl() {return imageUrl[Random().nextInt(imageUrl.length)];}///assets路径转换static String wrapAssets(String url) {return "assets/images/$url";}/// 加载网络图片(带缓存)/// imageUrl:图片地址/// placeholder:加载中占位符/// errorWidget:加载失败占位符static Widget network(String imageUrl,{double? height,double? width,BoxFit? fit,Widget? placeholder,Widget? error}) {///默认值Widget placeholderWidget = placeholder ??= Stack(alignment: Alignment.center,children: const [SizedBox(height: 30, width: 30, child: CircularProgressIndicator())],);Widget errorWidget = error ??= const Icon(Icons.error);try {return CachedNetworkImage(imageUrl: imageUrl,placeholder: (context, url) => placeholderWidget,errorWidget: (context, url, error) => errorWidget,height: height,width: width,fit: fit,);} catch (e) {return errorWidget;}}/// 加载 assets 图片/// url资源名称static Widget assets(String name,{double? height, double? width, BoxFit? fit, Color? color}) {return Image.asset(ImageHelper.wrapAssets(name),height: height,width: width,color: color,fit: fit,);}
}

使用案列

//作者头像ClipOval(child: ImageHelper.network(url ?? "",height: 40, width: 40),)

Flutter工具类 (二) 图片加载框架相关推荐

  1. Fresco图片加载框架的介绍,相关开源库以及工具类的封装

    Fresco图片加载框架的介绍,相关开源库以及工具类的封装 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 简介 Fresco 是Facebook开源的安卓上的 ...

  2. Android Glide图片加载框架(二)源码解析之into()

    文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...

  3. Android Glide图片加载框架(二)源码解析之load()

    文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...

  4. Android Glide图片加载框架(二)源码解析之with()

    文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...

  5. Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53939176 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  6. Android图片加载框架最全解析(八),带你全面了解Glide 4的用法

    本文转载自郭神的Glide分析系列:http://blog.csdn.net/guolin_blog/article/details/78582548 本文同步发表于我的微信公众号,扫一扫文章底部的二 ...

  7. Android图片加载框架 Glide 4 的用法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78582548 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  8. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  9. Android图片加载框架最全解析(三),深入探究Glide的缓存机制

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/54895665 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...

  10. Fresco图片加载框架使用方法完全指南

    简介 Fresco 是Facebook开源的安卓上的图片加载框架,也可以说是至今为止安卓上最强大的图片加载框架. 相对于其他几个图片加载框架,Fresco主要的优点在于更好的内存管理和更强大的功能,更 ...

最新文章

  1. 设置WebStorm查看本地源码文件个人修改的历史记录快捷键Alt+Shift+H、Ctrl+Shift+H(通常用于调试bug,发现文件出问题需要回溯到若干天之前)
  2. 有一天老板和我要几个关键数据……
  3. linux-grub修复5步搞定
  4. java wmi_WMI依赖服务使用WMI查询
  5. 【视觉项目】【day1】8.20号实验记录(初步使用模板匹配)
  6. mac安装python环境教程_python mac下安装虚拟环境的图文教程
  7. 文件上传至将File转换成MultiPartFile
  8. 键盘一键自定义组合工具_为开发人员提供社区,通讯和自定义工具的组合
  9. 结对编程1--模块化
  10. StringBuffer练习
  11. 牛客 2021年度训练联盟热身训练赛第二场 G题Plate Spinning
  12. Tina-TI 电路仿真下载、安装、简单功能介绍
  13. Django Navi 重用
  14. JQuery获得绝对,相对位置的坐标方法
  15. OCP 12c最新考试原题及答案(071-4)
  16. docker 常用操作-push分享及下载
  17. matlab里uicontrol的用法,Matlab uicontrol举例
  18. 如何关闭搜狗输入法软键盘的热键
  19. CSS背景background和显示元素
  20. 卸载 npm 软件包

热门文章

  1. Java打印String对象的地址
  2. html可拖拽图片循环滚动,html5可拖拽图片循环滚动切换 - 站长素材
  3. Luogu P1115 最大子段和
  4. webscraper 中文教程
  5. Simulink仿真模式
  6. 自媒体创作效率低?试试这5款工具,让你的运营效率翻倍
  7. android snackbar源码,android Snackbar
  8. Intel芯片组和AMD命名规则
  9. JDK1.9-final关键字
  10. matlab图像融合