使用 Glide 预加载多个图像

2024-03-11

我们正在努力预加载图像到缓存内存中以便稍后加载它们(图像位于资产文件夹申请的)

我们尝试过的:

Glide.with(this)
    .load(pictureUri)
    .diskCacheStrategy(DiskCacheStrategy.ALL);

Glide.with(this)
    .load(picture_uri)
    .diskCacheStrategy(DiskCacheStrategy.ALL)
    .preload();

问题:仅当我们尝试加载/显示图像时才会缓存图像: 它们必须事先加载到内存中,以便它们显示得更快。

Glide.with(this)
    .load(picture_uri)
    .into(imageView);

我们还尝试使用 GlideModule 来增加 CacheMemory 大小:

public class GlideModule implements com.bumptech.glide.module.GlideModule {
    @Override
    public void applyOptions(Context context, GlideBuilder
        builder.setMemoryCache(new LruResourceCache(100000));
    }

    @Override
    public void registerComponents(Context context, Glide glide) {
    }
}

在清单中:

 <meta-data android:name=".GlideModule" android:value="GlideModule"/>

到目前为止没有任何效果。任何想法?


我们尝试使用不可见的 1 dp imageView,但结果是相同的:

for(Drawing drawing: getDrawingsForTab(tab)){

    Glide.with(this)
            .load(drawing.getImage().toUri())
            .dontAnimate()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(mPreloadCacheIv);

    for(Picture picture : getPictures()){

        Glide.with(this)
                .load(picture.getPicture().toUri())
                .dontAnimate()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(mPreloadCacheIv);
    }
}

使用以下代码缓存图像而不显示它们

  1. 使用downloadOnly如果您想从网络下载图像并将其存储在磁盘缓存中,请使用以下方法:

    FutureTarget<File> future = Glide.with(applicationContext)
        .load(yourUrl)
        .downloadOnly(500, 500);
    
  2. using preload方法,如果你想将它们加载到内存缓存中。

    Glide.with(context)
            .load(url)
            .preload(500, 500);
    

您稍后可以使用缓存的图像

Glide.with(yourFragment)
    .load(yourUrl)
    .into(yourView);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Glide 预加载多个图像 的相关文章

随机推荐

  • 如何使用 powershell 循环创建 XML 文件的元素?

    我要创建 xml 文件 我从 ini 文件中选取的 xml 元素 我的 ini 文件超过 1 个 我尝试了这个 但仍然只能创建 1 个元素 我的 ini 文件中有 2 种类型的内容文件 第一 Product Name NB A String
  • 垂直 ViewPager2 与 RecyclerView 滚动问题

    我使用的是 ViewPager2 它有两个垂直方向的片段 当用户向下滑动到第二个片段时 有一个 RecyclerView 以相同的垂直方向滚动内容 问题是当我滚动 RecyclerView 的内容时 有时 ViewPager2 捕获滚动事件
  • 如何将 unicode 字符变成小写字母

    我在 VC MFC 中将 unicode 字符转换为小写字母时遇到问题 我在 CString 变量中有 unicode 字符 所以 使用英语 MakeLower 工作正常 我得到小写字母 但它无法将 unicode 字符转换为小写 我确实尝
  • 如何获得whenComplete和thenCompose的组合效果?

    我试图想出一个具有以下综合效果的 CompletableFuturewhenComplete and thenCompose 具体来说 返回一个CompletionStage而不仅仅是结果 类似于thenCompose 即使前一阶段异常完成
  • 我的程序在打开该活动时给出“应用程序不断停止”的错误是什么?

    应用程序正常打开 但在打开此活动时显示 应用程序不断停止 我不明白有什么问题 也许API级别与calendar get 不兼容 如果是这样我该如何修复它 public class SearchRide extends AppCompatAc
  • PHPUnit生成的测试骨架路径

    是否可以通过 sculpture test 命令告诉 phpunit 将生成的测试框架文件放在哪里 甚至可以告诉 phpunit 重复目录结构吗 以免说我有用于测试的文件lib model SomeClass php我希望 phpstorm
  • 立即在 Android 上显示自动完成功能

    Android 自动完成功能仅在两个字母后启动 如何才能在刚刚选择字段时显示列表 要使自动完成功能在焦点上显示 请添加焦点侦听器并在字段获得焦点时显示下拉菜单 如下所示 editText setOnFocusChangeListener n
  • 使用 HtmlService 在 google apps 脚本中保存状态的位置

    我有以下发布的网络应用程序code gs var queryString function doGet e queryString e queryString logger only works if the return value is
  • 使用 NancyFX 进行模型验证

    我真的很习惯 ASP NET MVC 方法 用相应的属性注释模型 MVC 验证它并更新 ModelState Errors ModelState 在视图上可用 因此可以向用户显示错误 我还没有找到相关信息wiki https github
  • msxml3.dll错误'80072ee2'操作超时

    我有一个经典的 ASP 页面 它读取外部 rss 提要 xml 文档 然后将其显示在网页上 在我的网站转移到新服务器之前 这一切都工作正常 我认为现在是 Windows 2008 我的脚本现在超时了 我认为问题实际上并不是因为我增加了超时值
  • 如何从字符串中删除变音符号(变音符号)?

    如何转换字符串 例如P li lu ou k k p l belsk dy into Prilis zlutoucky kun upel dabelske ody 源字符串采用 Unicode 因此原则上应该可以使用规范化 分解来分隔元音变
  • 如何查看 SQL 2008 锁和阻塞表

    在我的应用程序的 ASP NET 执行期间 SQL 2008 Express 似乎持有一些锁定 我得到 Timeout expired The timeout period elapsed prior to completion of 操作
  • 为什么 Java 类型擦除没有阻止此代码编译

    我有一个类定义了以下两种方法 public Map
  • 如何让 scalac 告诉我是否有未使用的变量?

    我刚刚注意到代码中的一个错误 我创建了一个新变量 但后来未能实际使用它 我以为 scalac 会告诉我我的新变量未被使用 但情况似乎并非如此 在进行少量谷歌搜索 手册页后 我找不到任何有关启用警告的信息 我该怎么做才能启用此类警告 这个东西
  • 使用Javascript读取外部文件

    我有一个可变长度名称的外部文本文件配置文件 txt包含以下格式的信息 Jason Red Tyrannosaurus Zack Black Mastodon Billy Blue Triceratops Trini Yellow Griff
  • 如何手动刷新升压日志?

    我正在使用 boost 1 54 0 中的 Boost Log 看看它是否适合我的应用程序 一般来说 我的缓冲没有问题 所以我不想打开 auto flush 或任何东西 但我注意到在我调用之前记录的消息fork 是重复的 我想知道是否是因为
  • 如何使用 Pyomo 制作指标函数?

    我正在寻找在 Pyomo 中创建一个简单的指示变量 假设我有一个变量 x 如果 x gt 0 则该指示函数将取值 1 否则取 0 我尝试这样做的方法如下 model ConcreteModel model A Set initialize
  • 自定义智能感知自动完成

    是否可以添加自定义智能感知来自动完成我的字符串 Example 我输入 艾达 它将弹出智能感知 gt Adapt gt Adapter 我正在使用一种新语言 需要向 Visual Studio 2015 的库添加更多功能 使用我的关键字数据
  • 免费升级为付费 Android 应用,不留两个图标

    我有一个Android应用程序 有免费和付费版本 其中免费版本有时间限制 之后它将用户重定向到市场购买付费版本 这两个版本具有不同的包名称 并作为单独的应用程序提交到市场 但是 当用户购买付费版本时 这不会取代免费版本 他们会同时安装两个版
  • 使用 Glide 预加载多个图像

    我们正在努力预加载图像到缓存内存中以便稍后加载它们 图像位于资产文件夹申请的 我们尝试过的 Glide with this load pictureUri diskCacheStrategy DiskCacheStrategy ALL Gl