Flutter好用的图片库

Posted 一个小码农的成长史

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter好用的图片库相关的知识,希望对你有一定的参考价值。

extended_image

功能最全面的图片展示库

主要功能

  • 缓存网络图片

  • 加载状态(正在加载,完成,失败)

  • 拖拽缩放图片

  • 图片编辑(裁剪,旋转,翻转)

  • 图片预览(跟微信掘金一样)

  • 滑动退出效果(跟微信掘金一样)

  • 设置圆角,边框

  • 支持进度显示

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


支持进度显示

增加loadingProgress参数,用于显示进度。

 ExtendedImage.network( 'https://raw.githubusercontent.com/fluttercandies/flutter_candies/master/gif/extended_text/special_text.jpg', handleLoadingProgress: true, clearMemoryCacheIfFailed: true, clearMemoryCacheWhenDispose: true, 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: <Widget>[ SizedBox( width: 150.0, child: LinearProgressIndicator( value: progress, ), ), SizedBox( height: 10.0, ), Text('${((progress ?? 0.0) * 100).toInt()}%'), ], ), ); } return null; }, ),
图片预览上滑显示详情(跟图虫一样)

当时在制作图片预览功能的时候,就暴露多了足够的api,提供给用户自定义各种效果。

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

  • 缩放

  • 平移

  • 上下一页图片

  • 拖动退出预览

  • 上滑显示详情

extended_image_library


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


flutter_wechat_assets_picker


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

  • 图片资源支持

  • 视频资源支持

  • 国际化支持

  • 自定义文本支持

以上是关于Flutter好用的图片库的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Flutter 混合开发获取 BinaryMessenger 报错 ( FlutterActivityAndFragmentDelegate.getFlutterEngine() )(代码片段

Flutter从相册选择图片和相机拍照(image_picker)

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

Flutter从相册选择图片并显示出来,上传到服务器

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

flutter解决 dart:html 只支持 flutter_web 其他平台编译报错 Avoid using web-only libraries outside Flutter web(代码片段