Flutter工具类 (二) 图片加载框架
导入依赖
# 图片加载库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工具类 (二) 图片加载框架相关推荐
- Fresco图片加载框架的介绍,相关开源库以及工具类的封装
Fresco图片加载框架的介绍,相关开源库以及工具类的封装 本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发. 简介 Fresco 是Facebook开源的安卓上的 ...
- Android Glide图片加载框架(二)源码解析之into()
文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...
- Android Glide图片加载框架(二)源码解析之load()
文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...
- Android Glide图片加载框架(二)源码解析之with()
文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...
- Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53939176 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android图片加载框架最全解析(八),带你全面了解Glide 4的用法
本文转载自郭神的Glide分析系列:http://blog.csdn.net/guolin_blog/article/details/78582548 本文同步发表于我的微信公众号,扫一扫文章底部的二 ...
- Android图片加载框架 Glide 4 的用法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78582548 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/78357251 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android图片加载框架最全解析(三),深入探究Glide的缓存机制
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/54895665 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭 ...
- Fresco图片加载框架使用方法完全指南
简介 Fresco 是Facebook开源的安卓上的图片加载框架,也可以说是至今为止安卓上最强大的图片加载框架. 相对于其他几个图片加载框架,Fresco主要的优点在于更好的内存管理和更强大的功能,更 ...
最新文章
- 设置WebStorm查看本地源码文件个人修改的历史记录快捷键Alt+Shift+H、Ctrl+Shift+H(通常用于调试bug,发现文件出问题需要回溯到若干天之前)
- 有一天老板和我要几个关键数据……
- linux-grub修复5步搞定
- java wmi_WMI依赖服务使用WMI查询
- 【视觉项目】【day1】8.20号实验记录(初步使用模板匹配)
- mac安装python环境教程_python mac下安装虚拟环境的图文教程
- 文件上传至将File转换成MultiPartFile
- 键盘一键自定义组合工具_为开发人员提供社区,通讯和自定义工具的组合
- 结对编程1--模块化
- StringBuffer练习
- 牛客 2021年度训练联盟热身训练赛第二场 G题Plate Spinning
- Tina-TI 电路仿真下载、安装、简单功能介绍
- Django Navi 重用
- JQuery获得绝对,相对位置的坐标方法
- OCP 12c最新考试原题及答案(071-4)
- docker 常用操作-push分享及下载
- matlab里uicontrol的用法,Matlab uicontrol举例
- 如何关闭搜狗输入法软键盘的热键
- CSS背景background和显示元素
- 卸载 npm 软件包