Skip to content

SherlockGougou/BigImageViewPager

Repository files navigation

BigImageViewPager

BigImageViewPager

📷 一个支持 超大图 / 超长图 / GIF / 视频 的轻量级预览库

Maven Stars License


目录


特性

  • 支持 超大图 / 超长图 / GIF / 视频
  • 支持 双指缩放 / 平移 / 左右滑动切换
  • 支持 原图查看 / 下载 / 加载进度监听
  • 支持 数据源动态更新与删除
  • 采用 区块复用加载,有效降低内存占用并减少 OOM 风险

安装

当前版本:androidx-9.2.0

1) 添加仓库

在你的项目仓库配置中确保包含 mavenCentral()

2) 添加依赖

BigImageViewPager 已拆分为核心库与可选视频插件:

  • 核心库(必选):com.gouqinglin:BigImageViewPager
  • 视频插件(可选):com.gouqinglin:BigImageViewPager-media3
dependencies {
    // 必选:核心库(图片能力)
    implementation "com.gouqinglin:BigImageViewPager:androidx-9.2.0"

    // 可选:视频插件(需要视频预览时添加)
    implementation "com.gouqinglin:BigImageViewPager-media3:androidx-9.2.0"

    // 必选:Glide
    def glideVersion = "4.16.0"
    implementation "com.github.bumptech.glide:glide:$glideVersion"
    annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
    implementation "com.github.bumptech.glide:okhttp3-integration:$glideVersion"
}

源码方式接入(本仓库本地调试):

// implementation(project(":library"))
// implementation(project(":library-video-media3"))

快速开始

1) 配置 GlideModule

@GlideModule
public class MyAppGlideModule extends AppGlideModule {
    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
        super.registerComponents(context, glide, registry);
        registry.replace(
                GlideUrl.class,
                InputStream.class,
                new OkHttpUrlLoader.Factory(ProgressManager.getOkHttpClient())
        );
    }
}

注意:如果不配置,原图加载进度可能长期停在 1%。

2) 发起预览

ImagePreview.getInstance().setContext(MainActivity.this).setMediaInfoList(imageInfoList).start();

更多参数配置见:doc/DETAIL.md


模块拆分与迁移

androidx-9.2.0 起,视频能力从核心库中解耦为可选插件:

  • BigImageViewPager:核心图片能力
  • BigImageViewPager-media3:基于 Media3 的视频能力

迁移建议:

  • 仅图片预览:保留 BigImageViewPager 即可
  • 需要视频预览:额外添加 BigImageViewPager-media3

发布建议(源码仓库维护者):

  • 核心库 artifactId:BigImageViewPager
  • 视频插件 artifactId:BigImageViewPager-media3
  • 两个 artifact 保持相同版本号发布

运行时行为

  • 未引入 BigImageViewPager-media3:视频条目自动降级为“视频能力不可用”提示,不影响图片预览。
  • 引入 BigImageViewPager-media3:视频能力自动启用,无需额外初始化。
  • 关闭预览页时会释放视频运行时资源;再次进入会自动重建缓存和播放器会话。

更新日志

  • androidx-9.2.0:ExoPlayer (Media3) 改为可选依赖,仅图片场景可减少 APK 体积
  • androidx-8.4.7:支持 32 位 16KB page size 特性
  • androidx-8.4.6:新增支持 res 资源
  • androidx-8.4.5:新增自定义请求头功能
  • androidx-8.4.4:修复本地视频加载问题

界面与视频展示

图片展示

preview-1 preview-2 preview-3
video-preview long-vertical long-horizontal

视频展示

1-original.mp4
2-swipe.mp4
3-drag-close.mp4

Star 曲线

Star History Chart


社区与支持

社区交流

qq

支持项目

wechat-pay alipay

致谢

  • Powered by DartNode - Free VPS for Open Source

dartnode


License

Copyright (C) 2018 SherlockGougou
Licensed under the Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0

About

🔥🔥🔥 BigImage ImageView ViewPager 一个图片/视频浏览器库,支持超大图、超长图、动图、视频,支持手势,支持查看原图、下载、加载百分比进度显示。采用区块复用加载,优化内存占用,有效避免OOM。

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors