Flutter上线项目实战——图片视频预览

interactiveviewer_gallery

图片预览&视频预览&图片视频混合预览的容器UI

  1. 支持双指缩放
  2. 支持双击放大
  3. 支持左右切换图片
  4. 支持下拉手势返回, 伴随缩小、移动、透明度变化
  5. 支持视频失去焦点自动暂停

预览

qiniu/youtube

apk download

安装

因为该库是在InteractiveViewer基础上实现的, 所以flutter版本不低于1.20.0

interactiveviewer_gallery: ${last_version}

如何使用

  1. 九宫格图片页面中图片组件包裹Hero(用来跳转的承接动画)
Hero(
    tag: source.url,
    child: ${gridview item}
)
  1. 点击九宫格图片跳转到图片预览页面
Navigator.of(context).push(
    HeroDialogRoute<void>(
      builder: (BuildContext context) => InteractiveviewerGallery<DemoSourceEntity>(
          sources: sourceList,
          initIndex: sourceList.indexOf(source),
          // 定义自己的item
          itemBuilder: itemBuilder,
          onPageChanged: (int pageIndex) {
            print("nell-pageIndex:$pageIndex");
          },
      ),
    ),
  );
  1. 定义自己的item (因为每个人的UI设计不一样, 所以这里需要自己实现item, 该库只是一个UI容器), 可以参考预览视频中的实现: example/lib/main.dart
Widget itemBuilder(BuildContext context, int index, bool isFocus) {
  DemoSourceEntity sourceEntity = sourceList[index];
  if (sourceEntity.type == 'video') {
    return DemoVideoItem(
      sourceEntity,
      isFocus: isFocus,
    );
  } else {
    return DemoImageItem(sourceEntity);
  }
}

其他

欢迎pr和讨论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值