cache: false,

loadStateChanged: (ExtendedImageState state) {

if (state.extendedImageLoadState == LoadState.loading) {

final loadingProgress = state.loadingProgress;

final progress = loadingProgress?.expectedTotalBytes != null

? loadingProgress.cumulativeBytesLoaded /

loadingProgress.expectedTotalBytes
null;

return Center(

child: Column(

mainAxisAlignment: MainAxisAlignment.center,

crossAxisAlignment: CrossAxisAlignment.center,

children: [

SizedBox(

width: 150.0,

child: LinearProgressIndicator(

value: progress,

),

),

SizedBox(

height: 10.0,

),

Text(‘${((progress ?? 0.0) * 100).toInt()}%’),

],

),

);

}

return null;

},

),

图片预览上滑显示详情(跟图虫一样)

当时在制作图片预览功能的时候,就暴露多了足够的api,提供给用户自定义各种效果, 由于Flutter手势的复杂以及冲突,我特意做了一个Demo提供出来。

至此pic_swiper.dart已拥有以下功能:

  • 缩放

  • 平移

  • 上下一页图片

  • 拖动退出预览

  • 上滑显示详情

extended_image_library

为extended_image的基础库,如果你只需要网络图片缓存功能,你可以只引用这个库

Image(

image: ExtendedNetworkImageProvider(“”, cache: true),

);

复制代码

  • 支持Web,小姐姐在线Demo

  • 提供获取缓存图片的各种方法

  • 方便获取图片的原数据(image的toByteData方法性能不佳)

flutter_image_editor

flutter_image_editor可以说是低调为extended_image量身打造的原生插件,支持旋转裁剪翻转,extended_image负责图片编辑UI,flutter_image_editor提供原生裁剪图片数据能力。由于dart image库在处理图片的效率问题,原生库(期待纯C++库)就有了很大的优势(大图片可以有10倍速度的提升)。

flutter_wechat_assets_picker

出自Flutter劝退师Alex之手, 是一个对标微信的多选资源选择器,99%接近于原生微信的操作,纯Dart编写,支持选择的同时也支持预览资源。支持如下功能:

  • 图片资源支持

  • 视频资源支持

  • 国际化支持

  • 自定义文本支持

原文章

最后

为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

加油,共勉。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐