Glide预加载图片preload失效问题修复!

背景

项目中有这样一个需求:在APP中展示一个操作指引,这是三张服务端下发的图片。
为了提高用户体验,想要先下载图片,然后下载完成之后,再对图片进行展示,这样用户就不必看到加载图片时的空白状态。

实现方案

这里我打算新写一个工具类,专门用来处理类似的请求。同时呢直接使用Glide的preload的方法,监听资源准备好之后,再去执行展示方法。具体代码如下:

public class ImagePreloadUtil {
   
    
    
fun preloadImage(imageUrls: List<String?>?, onLoadFinish: () -> Unit) {
   
    
    
    if (imageUrls.isNullOrEmpty()) {
   
    
    
        onLoadFinish()
        return
    }

    // 把一些空的图片地址与 非 http url 地址去掉
    val realImages = imageUrls?.filter {
   
    
     !(it.isNullOrBlank()) && it.isHttpUrl() }

    if (realImages.isNullOrEmpty()) {
   
    
    
        onLoadFinish()
        return
    }

    val countDown = AtomicInteger(realImages?.size ?: 0)
    realImages?.forEach {
   
    
    
        preloadSingleImage(it){
   
    
    
            val result = countDown.decrementAndGet

猜你喜欢

转载自blog.csdn.net/yztbydh/article/details/130867435
今日推荐