如何计算Glide图像加载时间?

时间:2019-09-10 03:45:23

标签: android kotlin android-glide

我想计算Glide图像的加载时间,但是似乎无法获取加载时间。

当前,RequestListener.onResourceReady用于计算时间,但是当滑动列表或将应用返回后台时,这是不准确的。

    var start = System.currentTimeMillis()
    placeholder?.let { creator.placeholder(placeholder) }
    error?.let { creator.error(error) }
    creator.config(Bitmap.Config.RGB_565)
    creator.fit().into(image,  object : RequestListener<Drawable> {
        override fun onLoadFailed(
            e: GlideException?,
            model: Any?,
            target: Target<Drawable>?,
            isFirstResource: Boolean
        ): Boolean {
            return false
        }

        override fun onResourceReady(
            resource: Drawable?,
            model: Any?,
            target: Target<Drawable>?,
            dataSource: DataSource?,
            isFirstResource: Boolean
        ): Boolean {

            var end = System.currentTimeMillis()
            System.out.println(
                "loading_time "+
                        "   photo=" + src + "  start=" + start + "  end=" + end + "   cost=" + (end - start) + "   dataSource=" + dataSource
            )
            return false
        }
    })```

1 个答案:

答案 0 :(得分:0)

尝试以下逻辑:

在加载图像之前,现在要花很长的时间在调用glide load函数之前执行Handler.postdelay(),因为它将以100毫秒的间隔连续增加您的Lateinit long var,并且当资源就绪时,只需执行handler.removecallbacksandmessages(),之后您可以打印时间。