1 Star 9 Fork 5

zengxiangxi / photo_preview_flutter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

photo_preview

通用图片视频浏览器(flutter)

引入说明

主要使用了第三方图片库 zmtzawqlpfluttercandies/extended_image

预览效果

预览图 效果图

说明

对多个图片/视频大图查看器封装,支持自定义图片、视频和滑动效果等多种样式配置,具有高扩展性。

目前主要支持功能

  • 图片
    • 双击放大和还原,单击退出
    • 滑动缩小退出
    • 预加载缩略图
  • 视频
    • 视频预加载封面
    • 滑动缩小退出
    • 切换自动暂停和还原状态
  • 操作
    • 自定义图片显示效果
    • 自定义视频显示效果
    • 自定义滑动拖动效果
    • 自定义显示错误效果
    • Hero飞行效果
    • 多种数据源构造方法

使用

引入库

pubspec.yaml配置文件引入

photo_preview:
	git:
		url: $仓库地址
		ref: master

基础使用

调用 PhotoPreviewPage.navigatorPush(...)方法

PhotoPreviewPage.navigatorPush(context, PhotoPreviewDataSource(
        imgVideoFullList: [
          PhotoPreviewInfoVo(
            url:"https://s1.ax1x.com/2020/09/17/wR3WnI.jpg",
            loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR3WnI.md.jpg",
            type: PhotoPreviewType.image
          ),
          PhotoPreviewInfoVo(
              url: "https://v-cdn.zjol.com.cn/277001.mp4",
              loadingCoverUrl:"https://s1.ax1x.com/2020/09/17/wR8uCD.jpg",
              type: PhotoPreviewType.video
          ),
          PhotoPreviewInfoVo(
              url: "https://s1.ax1x.com/2020/09/17/wR0NmF.jpg",
              loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR0NmF.md.jpg",
              type: PhotoPreviewType.image
          ),
          PhotoPreviewInfoVo(
            url: "https://s1.ax1x.com/2020/09/17/wR3H3Q.jpg",
            loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR3H3Q.md.jpg",
              type: PhotoPreviewType.image
          )
        ]
    ));

多种数据源方式构造

PhotoPreviewDataSource字段

参数 说明 默认值
imgVideoUrlList 仅有资源路径(优先级低) null
imgVideoFullList 完整数据源路径(优先级低) null
initialUrl 初始url(优先级高) null
initialPage 初始页(优先级低) null

1.单数据

通过 PhotoPreviewDataSource.single 构建查看单图数据源

 PhotoPreviewPage.navigatorPush(
 	context,
 	PhotoPreviewDataSource.single(
 		"https://s1.ax1x.com/2020/09/17/wR3WnI.jpg",
 		loadingCoverUrl:"https://s1.ax1x.com/2020/09/17/wR3WnI.md.jpg",
 		heroTag: tag
 		));

2.List数组数据

利用json编解码构建数据源list

参数 说明 默认值
list(必填) 自定义实体数组 null
mapToUrlKey 资源文件url对应字段 url
mapToLoadingCoverUrlKey 预加载url对应字段 loadingCoverurl
mapToExtraKey 额外传值对应字段 extra
mapToHeroTagKey herotag标志 heroTag
mapToTypeKey 资源类型对应字段 type
extraTransformFunc等相关 自定义处理结果 (非基本类型需实现该方法)
initialUrl 初始url(优先级高) null
initialPage 初始页(优先级低) null
 PhotoPreviewPage.navigatorPush(
      context,
      PhotoPreviewDataSource.fromMap(resultList,
          mapToUrlKey: "picurl",
          mapToLoadingCoverUrlKey: "spicurl",
          mapToExtraKey: "data",
          mapToHeroTagKey: "id",
          extraTransformFunc: (extraMap){
            return {
              'title':extraMap["extra1"],
              'intro':extraMap["extra1"]
            };
          }),
        imageDelegate: CommonWithInfoImageDelegate(),
        videoDelegate: CommonWithInfoVideoDelegate());

3.直接构造数据源

直接将转换好的 PhotoPreviewDataSource传值

 PhotoPreviewPage.navigatorPush(context, PhotoPreviewDataSource(
        imgVideoFullList: [
          PhotoPreviewInfoVo(
            url:"https://s1.ax1x.com/2020/09/17/wR3WnI.jpg",
            loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR3WnI.md.jpg",
            type: PhotoPreviewType.image
          ),
          PhotoPreviewInfoVo(
              url: "https://v-cdn.zjol.com.cn/277001.mp4",
              loadingCoverUrl:"https://s1.ax1x.com/2020/09/17/wR8uCD.jpg",
              type: PhotoPreviewType.video
          ),
          PhotoPreviewInfoVo(
              url: "https://s1.ax1x.com/2020/09/17/wR0NmF.jpg",
              loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR0NmF.md.jpg",
              type: PhotoPreviewType.image
          ),
          PhotoPreviewInfoVo(
            url: "https://s1.ax1x.com/2020/09/17/wR3H3Q.jpg",
            loadingCoverUrl: "https://s1.ax1x.com/2020/09/17/wR3H3Q.md.jpg",
              type: PhotoPreviewType.image
          )
        ]
    ));

自定义图片

待完善文档...

自定义视频

待完善文档...

自定义滑动效果

待完善文档...

自定义传值

待完善文档...

空文件

简介

图片/视频大图查看器封装,支持自定义图片、视频和滑动效果等多种样式配置,具有高扩展性。 展开 收起
Dart 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Dart
1
https://gitee.com/zengxiangxi315/photo_preview_flutter.git
git@gitee.com:zengxiangxi315/photo_preview_flutter.git
zengxiangxi315
photo_preview_flutter
photo_preview_flutter
flutter-2.x

搜索帮助