一行代码简单实现Glide网络图片加载进度监听

最近小伙伴有个需求,就是在加载网络图片的同时显示加载进度,本来以为简单调用一下监听即可,查了一圈发现实现该功能需要重写不少类和方法,存在大量样板代码,于是便做了一个开源Library项目,方便大家集成后,一行代码实现Glide网络图片加载进度监听。

使用方式:
1、集成Library

allprojects {
	repositories {
		...
		maven { url 'https://www.jitpack.io' }
	}
}
 implementation 'com.github.bumptech.glide:glide:4.11.0'
 implementation "com.github.bumptech.glide:okhttp3-integration:4.11.0"
 implementation 'com.gitee.arcns:glide-extension:0.3'

2、使用方式

  • Kotlin
Glide.with(this)
            .loadWithProgress(
                context = this, // 上下文
                networkUrl = "https://data.1freewallpapers.com/download/surreal-landscape-4k.jpg", // 图片网络地址
                progressBar = binding.pbTest,  // 进度条,可为空
                progressTextView = binding.tvTest, // 进度文本(x%),可为空
                lifecycleOwner = this,// 生命周期感知,生命周期结束时自动解除监听,可为空
                listener = object : com.arcns.glide.grogress.GlideProgressListener() {  // 进度监听,可为空
                    override fun onProgress(current: Long, total: Long, percent: Float) {
                        Log.e("GlideProgress", "current:$current,total:$total,percent:$percent")
                    }
                }
            )
            .skipMemoryCache(true) 
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .into(binding.ivTest)
  • Java
 GlideProgressExtensionKt.loadWithProgress(
                Glide.with(context), // Glide RequestManager或RequestBuilder
                context, // 上下文
                "", // 图片网络地址
                new GlideProgressListener() {
                    @Override
                    public void onProgress(long current, long total, float percent) {

                    }
                }, // 进度监听,可为空
                null, // 生命周期感知,生命周期结束时自动解除监听,可为空
                null, // 进度条,可为空
                null // 进度文本(x%),可为空
        ).into(imageView);

项目地址(含案例):
https://gitee.com/arcns/glide-extension
作者:
Arcns

你可能感兴趣的:(一行代码优雅实现,android)