flutter-使用extended_image操作图片的加载和状态处理

这篇具有很好参考价值的文章主要介绍了flutter-使用extended_image操作图片的加载和状态处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 介绍

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

效果图:
extended_image,Flutter,flutter,学习,android,ios

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 用于取消请求的 Token CancellationToken()
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手把手教程

个人主页文章来源地址https://www.toymoban.com/news/detail-833847.html

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

到了这里,关于flutter-使用extended_image操作图片的加载和状态处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flutter】Flutter 图片选择器入门:如何使用 image_picker 插件从图库选择图片、拍摄新照片

    🎉想要精通 Flutter,掌握更多技巧和最佳实践?好消息来了!👉 Flutter专栏-Flutter Developer 101 入门小册 正在等你!📚 🔍这里有你需要的所有 Flutter 学习资源,包括代码示例和深度解析。🎯 ⏰专栏内容持续更新࿰

    2024年02月14日
    浏览(61)
  • Compose布局之Image控件使用详解:加载网络图片与内容缩放

    本文详细介绍了Compose框架中Image控件的基础使用,包括加载网络图片、contentScale内容缩放等高级功能,帮助开发者更好地掌握Compose布局中的图片展示技巧。

    2024年02月11日
    浏览(106)
  • QML Image 通过 QQuickAsyncImageProvider 异步加载图片

    相关:QML Image 通过 QQuickImageProvider 加载图片-CSDN博客 根据 QQuickImageProvider 的文档说明,该类其实是支持在独立线程中异步加载的,但是 Async 类提供了专用于异步加载的接口,操作起来也不复杂,对于大文件或者网络文件,都可以采用异步方式加载图片。 继续 QQuickAsyncImag

    2024年01月19日
    浏览(43)
  • 【微信小程序】image真机无法加载网络图片

    目录 背景 为什么微信小程序  技术思路 前端页面 吐槽 最终解决 今天把车停在了路边,可能是挡住了行人的路,被贴了个条,还留了个纸条——没有你的随车电话,我只能点电话举报你了。气的我牙痒痒! 只能回来自己撸一个挪车电话小工具!这样通过扫描二维码拨打电话

    2024年02月09日
    浏览(87)
  • [Flutter] extends、implements、mixin和 abstract、extension的使用介绍说明

    1.abstract(抽象类) dart 抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 抽象类通过abstract 来定义。 抽象类不可以被实例化,只有继承他的子类可以。 子类继承抽象类必须实现里面的抽象方法。 抽象类作为接口,必须实现抽象类里面的所有

    2024年01月17日
    浏览(32)
  • 深入理解 Flutter 图片加载原理

    作者:京东零售 徐宏伟 来源:京东云开发者社区 随着Flutter稳定版本逐步迭代更新,京东APP内部的Flutter业务也日益增多,Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验,但随之也带来了一些OOM问题,通过线上监控

    2024年02月12日
    浏览(47)
  • uni-app image加载错误 404 替换为默认图片

    使用item修改 aitem.cat_icon || defaultPic 绑定图片src属性为aitem.cat_icon 如果aitem.cat_icon的值为空字符串或undefined,那么默认图片defaultPic被显示出来 当图片加载错误时,触发handleImageError方法,将aitem传进去 修改该条数据的cat_icon值 打印aitem如下,修改cat_icon即可 使用index下标修改 当图片

    2024年02月16日
    浏览(38)
  • 深入理解 Flutter 图片加载原理 | 京东云技术团队

    随着Flutter稳定版本逐步迭代更新,京东APP内部的Flutter业务也日益增多,Flutter开发为我们提供了高效的开发环境、优秀的跨平台适配、丰富的功能组件及动画、接近原生的交互体验,但随之也带来了一些OOM问题,通过线上监控信息和Observatory工具结合分析我们发现问题的原因

    2024年02月12日
    浏览(35)
  • [渲染层网络层错误] Failed to load local image resource /miniprogram/images/1.jpg无法加载本地图片资源

    最近开始学习编写小程序,跟着教程走到展示图片这一步发现这个错误。按照正常的编程思路和百度大法,大部分说是路径错误和图片不能带有中字。但是按照经验复制相对路径和绝对路径都不行,还是同样的错误。代码如下。 图片的路径绝对没问题,百度有的博客说用wx

    2024年02月11日
    浏览(50)
  • uniapp APP、H5和微信小程序 使用百度地图,H5动态加载百度地图sdk,cover-image图片不显示,标准基座模拟器地图不显示,表单校验字段[‘**‘]在数据库中不存在

    APP里面的几个注意项 在百度地图开放平台申请密匙,在manifest.json App模块配置的地图模块选择百度地图并填入申请到的appkey。 页面使用uniapp的map标签,要在地图上面覆盖图片、内容等,使用cover-image、cover-view,因为map是原生组件,覆盖的内容有时不显示,使用v-if控制(这里

    2024年02月11日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包