flutter学习-day23-使用extended_image处理图片的加载和操作

文章目录

  • 1. 介绍
  • 2. 属性介绍
  • 3. 使用

1. 介绍

在 Flutter 的开发过程中,经常会遇到图片的显示和加载处理,通常显示一个图片,都有很多细节需要处理,比如图片的加载、缓存、错误处理、图片的压缩、图片的格式转换等,如果每个地方都手动处理,就太麻烦了,这时候就可以使用糖果大佬的插件 extended_image,它是官方 Image 的扩展三方库,不但支持图片加载以及失败显示,缓存网络图片,缩放拖拽图片,图片浏览等,还支持滑动退出页面,编辑图片(裁剪旋转翻转),保存,绘制自定义效果等功能。

效果图:
效果图

2. 属性介绍

属性描述
url网络请求地址required
key唯一标识符-
semanticLabel语义标签-
excludeFromSemantics是否排除语义false
width宽度-
height高度-
color颜色-
opacity透明度动画-
colorBlendMode颜色混合模式-
fit图片适应方式-
alignment对齐方式Alignment.center
repeat图片重复方式ImageRepeat.noRepeat
centerSlice九宫格切片区域-
matchTextDirection是否匹配文本方向false
gaplessPlayback是否无缝播放false
filterQuality滤镜质量FilterQuality.low
loadStateChanged图片加载状态回调Function
shape盒子形状-
border盒子边框-
borderRadius圆角半径-
clipBehavior裁剪行为Clip.antiAlias
enableLoadState是否启用加载状态true
beforePaintImage图片绘制前回调-
afterPaintImage图片绘制后回调-
mode扩展图片模式(默认/手势/编辑)ExtendedImageMode.none
enableMemoryCache是否启用内存缓存true
clearMemoryCacheIfFailed加载失败时是否清除内存缓存true
onDoubleTap双击事件回调-
initGestureConfigHandler初始化手势配置回调-
enableSlideOutPage是否启用滑动退出页面false
constraints约束条件-
cancelToken用于取消请求的 TokenCancellationToken()
retries请求尝试次数3
timeLimit请求超时时间-
headers请求头-
cache是否缓存true
scale图片缩放比例1.0
timeRetry请求重试间隔milliseconds: 100
extendedImageEditorKey扩展图片编辑器键-
initEditorConfigHandler初始化编辑器配置回调-
heroBuilderForSlidingPage滑动退出页面时的英雄构建器-
clearMemoryCacheWhenDispose销毁时是否清除内存缓存false
handleLoadingProgress是否处理加载进度false
extendedImageGestureKey扩展图片手势键-
cacheWidth缓存宽度-
cacheHeight缓存高度-
isAntiAlias是否开启抗锯齿false
cacheKey缓存键-
printError是否打印错误信息true
compressionRatio压缩比例-
maxBytes最大字节数-
cacheRawData是否缓存原始数据false
imageCacheName图片缓存名称-
cacheMaxAge缓存最大寿命-
layoutInsets布局插入区域EdgeInsets.zero

3. 使用

更详细的使用方式,请参考extended_image 文档,本例子只针对图片的加载、成功、失败的处理以及放大查看。

ExtendedImage.network(imagePath,width: double.infinity,fit: BoxFit.fitHeight,cache: true,mode: ExtendedImageMode.gesture,initGestureConfigHandler: (state) {return GestureConfig(// 缩放最小值minScale: 0.8,// 缩放动画最小值 当缩放结束时回到 minScale 值animationMinScale: 0.8,// 缩放最大值maxScale: 2.0,// 缩放动画最大值 当缩放结束时回到 maxScale 值animationMaxScale: 3.5,// 缩放拖拽速度speed: 1.0,// 拖拽惯性速度inertialSpeed: 100.0,initialScale: 1.0,// 是否使用 ExtendedImageGesturePageView 展示图片inPageView: false,// 当图片的初始化缩放大于 1.0 的时候,根据相对位置初始化图片initialAlignment: InitialAlignment.center);}/// 加载状态回调loadStateChanged: (ExtendedImageState state) {switch (state.extendedImageLoadState) {/// 加载中case LoadState.loading:// 自己写的加载中的Loading组件return LoadWait();/// 加载成功case LoadState.completed:return state.completedWidget;/// 加载失败case LoadState.failed:// 自己写的加载失败的组件 并且把重试的回调传递过去return LoadFailed(callback: state.reLoadImage);}}
)

本次分享就到这儿啦,我是鹏多多,如果您看了觉得有帮助,欢迎评论,关注,点赞,转发,我们下次见~

往期文章

  • flutter学习-day1-环境搭建和启动第一个项目
  • flutter学习-day12-可滚动组件和监听
  • Vue2全家桶+Element搭建的PC端在线音乐网站
  • vue3+element-plus配置cdn
  • 助你上手Vue3全家桶之Vue3教程
  • 助你上手Vue3全家桶之VueX4教程
  • 助你上手Vue3全家桶之Vue-Router4教程
  • 超详细!Vue的九种通信方式
  • 超详细!Vuex手把手教程
  • 使用nvm管理node.js版本以及更换npm淘宝镜像源
  • vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令
  • 超详细!Vue-Router手把手教程

个人主页

  • CSDN
  • GitHub
  • 简书
  • 博客园
  • 掘金

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/324319.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

六、Spring 声明式事务

本章概要 声明式事务概念 编程式事务声明式事务Spring事务管理器 基于注解的声明式事务 准备工作基本事务控制事务属性:只读事务属性:超时时间事务属性:事务异常事务属性:事务隔离级别事务属性:事务传播行为 6.1 声…

癌症早筛2023:翻越大山,仍是漫漫征途

撕开一盒试剂盒,拿出采样工具,在采集测试样本后混入试剂,再用试纸测试自身对某种病原体的感染情况。过去一段时间,这个方式帮助很多人尽早明确了新冠、流感、支原体的感染状况,从而加速对症治疗。 也因此,…

RBAC基于角色的访问控制

一 什么是RBAC 概念 RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的&#…

全网最全fiddler使用教程和fiddler如何抓包(fiddler手机抓包)-笔者亲测

一、前言 抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark.为什么使用fiddler?原因如下: 1.Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎…

MySQL-DQL

DQL是数据查询语言,用来查询数据库中表中的数据。 DQL语句编写顺序和执行顺序: 编写顺序:由上至下 执行顺序: 基本查询 1. 查询多个字段:SELECT 字段1,字段2,字段3... FROM 表名; 查询所有字段: SELECT*FR…

南某人:从工厂到品牌的华丽转身!

南某人,这个名字在中国的市场上已经响当当,但你知道吗?这个品牌其实并没有自己的工厂和门店。那么,他们是如何做到年收入高达40亿的呢? 起初,南某人和许多中国品牌一样,从生产保暖内衣起家。然…

es6中import * as导入方式

es6中import * as导入方式 一、问题和解决方法二、简介import * as三、ES6 模块化语法导入导出1.导入2.导出 一、问题和解决方法 问题报错: export ‘default’ (imported as ‘XLSX’) was not found in ‘xlsx’ (possible exports: CFB, SSF, parse_xlscfb, parse_zip, read…

云卷云舒:构建业务型电信智能运维方法

1 引言 智能运维(AIOps-Algorithmic IT Operations基于算法的IT运维)是人工智能技术在IT运维领域的运用,引用Gartner 的报告的一段话“未来几年,将近50%的企业将会在他们的业务和IT运维方面采用AIOps,远远高于今天的10…

【Java集合篇】HashMap、Hashtable 和 ConcurrentHashMap的区别

HashMap、Hashtable和ConcurrentHashMap的区别 ✔️ 三者区别✔️ 线程安全方面✔️继承关系方面✔️ 允不允许null值方面✔️为什么ConcurrentHashMap不允许null值? ✔️ 默认初始容量和扩容机制✔️遍历方式的内部实现上不同 ✔️ 三者区别 ✔️ 线程安全方面 HashMap是非线…

2023年12月23日~2024年1月5日周报(调试CNN-RWI代码、继续研读论文)

一、前言 上周对CNN-RWI论文进行了初步研读,但是只是了解了大概,很多问题也只是停留在表面,没有进行深入思考。 本周带着一系列问题继续研读CNN-RWI论文,并对代码进行初步学习。 问题描述: ①为什么阈值大小设置为网格…

案例092:基于微信小程序的二手闲置交易市场系统

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

深圳易图讯科技VR三维电子沙盘系统

易图讯VR三维电子沙盘系统是一种结合虚拟现实技术的地理信息系统。它通过高精度三维模型,真实再现了地理环境、建筑布局和地形地貌。用户可通过VR设备沉浸式体验这一虚拟世界,进行各种交互操作,如缩放、旋转、移动等。系统还支持实时数据更新…