BigImageViewPager 使用教程

BigImageViewPager 使用教程

BigImageViewPager 🔥🔥🔥 BigImage ImageView ViewPager 支持超长图、超大图的图片浏览器,优化内存,支持手势放大、下拉关闭、查看原图、加载百分比、保存图片等功能。 BigImageViewPager 项目地址: https://gitcode.com/gh_mirrors/bi/BigImageViewPager

1. 项目介绍

BigImageViewPager 是一个功能强大的图片/视频浏览器库,支持展示超大图、超长图、动图和视频。它支持手势操作,可以查看原图、下载图片,并显示加载百分比进度。此外,BigImageViewPager 通过区块复用加载技术,优化内存占用,有效避免内存溢出(OOM)。

2. 项目快速启动

2.1 添加依赖

首先,在项目的 build.gradle 文件中添加以下仓库地址:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,在应用模块的 build.gradle 文件中添加以下依赖:

dependencies {
    // 本框架
    implementation 'com.github.SherlockGougou:BigImageViewPager:androidx-8.2.2'
    // glide
    implementation 'com.github.bumptech.glide:glide:4.16.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0' // 如果使用kotlin请使用kapt
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.16.0'
    implementation "com.github.zjupure:webpdecoder:2.3.4.14.2"
    // ExoPlayer
    implementation "androidx.media3:media3-exoplayer:1.4.1"
    implementation "androidx.media3:media3-exoplayer-dash:1.4.1"
    implementation "androidx.media3:media3-ui:1.4.1"
}

2.2 配置 AppGlideModule

在应用模块中创建一个名为 MyAppGlideModule 的类,继承自 AppGlideModule 并重写 registerComponents 方法:

@GlideModule
public class MyAppGlideModule extends AppGlideModule {
    @Override
    public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
        super.registerComponents(context, glide, registry);
        // 替换底层网络框架为okhttp3,这步很重要!
        registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(ProgressManager.getOkHttpClient()));
    }
}

2.3 初始化和调用

创建一个图片信息列表,并使用 ImagePreview 类启动图片预览:

List<ImageInfo> imageInfoList = new ArrayList<>();
for (String image : images) {
    ImageInfo imageInfo = new ImageInfo();
    imageInfo.setType(Type.IMAGE); // 指定媒体类型
    imageInfo.setOriginUrl(image); // 原图URL
    imageInfo.setThumbnailUrl(image); // 缩略图URL
    imageInfoList.add(imageInfo);
}

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

3. 应用案例和最佳实践

3.1 加载策略

BigImageViewPager 提供了多种加载策略,可以根据实际情况选择合适的策略:

  • AlwaysOrigin:始终加载原图
  • AlwaysThumb:始终加载缩略图
  • NetworkAuto:根据网络状况自动选择,WiFi加载原图,流量加载缩略图
  • Default:默认模式,默认加载缩略图,点击后加载原图
  • Auto:全自动模式,WiFi加载原图,流量下默认缩略图,可以点击查看原图

3.2 动态更新数据源

如果需要动态更新或删除某些项目,可以使用以下方法:

// 删除项目
ImagePreview.getInstance().getPreviewActivity().deleteItem(position);

// 更新项目
ImageInfo imageInfo = new ImageInfo();
imageInfo.setOriginUrl("新的原图URL");
imageInfo.setThumbnailUrl("新的缩略图URL");
ImagePreview.getInstance().getPreviewActivity().updateItem(position, imageInfo);

4. 典型生态项目

BigImageViewPager 的生态中包括了一些典型的项目,例如:

  • 使用 BigImageViewPager 实现图片查看器的应用
  • 集成到现有的图片选择器库中,提供更丰富的图片预览功能
  • 在社交媒体应用中用于展示用户发布的图片和视频

通过以上教程,您应该能够快速上手并使用 BigImageViewPager 丰富的功能。

BigImageViewPager 🔥🔥🔥 BigImage ImageView ViewPager 支持超长图、超大图的图片浏览器,优化内存,支持手势放大、下拉关闭、查看原图、加载百分比、保存图片等功能。 BigImageViewPager 项目地址: https://gitcode.com/gh_mirrors/bi/BigImageViewPager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劳颜甜Hattie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值