【问题标题】:glide take time to load image even if image load from cache?即使从缓存中加载图像,滑行也需要时间来加载图像?
【发布时间】:2019-07-04 11:42:24
【问题描述】:

我有 RecyclerView 从服务器 URL 加载图像。所以我使用 Glide 库来加载图像,将图像存储到缓存中以尽可能快地重新加载。 我第一次使用placeholder() 作为加载器来加载图像,但如果我关闭互联网并启动应用程序,它仍然会先加载占位符,然后将图像加载到ImageView。 所以,我的问题是,有没有办法将图像加载到ImageView 中,以便在加载图像时用户体验像平滑(离线)应用程序

Glide.with(context)
        .load(www.abc.com/abcd.jpg)
        .placeholder(R.drawable.placeholder)          
        .into(viewHolder.ivSleepImage)

你可以检查这个应用程序Walking UP它第一次加载图像而不是没有加载器,下一次加载图像意味着当你打开应用程序图像时已经加载在列表中。

请有人帮我完成这项任务

【问题讨论】:

  • 尝试添加 .diskCacheStrategy(DiskCacheStrategy.ALL)
  • 已经尝试了 val requestOptions = RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.ALL) 对我仍然不起作用

标签: android android-imageview android-glide


【解决方案1】:

有两种方法可以完成这项任务,但它可能非常冗长,因为存储和加载不是 android 开发中的方法

1.将数据存入缓存

2.将数据存入数据库

缓存策略相对容易。当您从服务器请求数据时,如果连接不可用,那么您必须从缓存中加载数据。从数据库中也可以这样说,但它很长而且可能很慢。

【讨论】:

    【解决方案2】:

    您的问题的快速解决方案是将diskCacheStrategy 添加到您的 Glide 呼叫中。这将帮助您缓存图像的 ALL 版本,从而减少加载时间。这是一个实现:

    Glide.with(context)
        .load(www.abc.com/abcd.jpg)
        .placeholder(R.drawable.placeholder)          
        .into(viewHolder.ivSleepImage)
        .diskCacheStrategy(DiskCacheStrategy.ALL)
    

    我希望这会有所帮助。编码愉快!

    【讨论】:

    • 再试一次。第二次应该可以正常工作。通常,图像在第一次被缓存,因此初始延迟。
    猜你喜欢
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2011-04-22
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    相关资源
    最近更新 更多