android - Glide 预加载可绘制资源图像
问题描述
我正在使用 Glide 图像加载库,并希望将我存储在设备上的一些图像预加载为可绘制资源(不是 URL!)。
因此,当按下按钮时,应该在ImageView
.
问题是我第一次输入Fragment
并通过按按钮循环图像时,图像会闪烁(因为它们已加载到内存中然后显示)。但是当我将所有图像加载到内存中时,循环看起来不错(没有闪烁)并且图像会立即显示。
我只是无法弄清楚预加载是如何工作的,并摆脱了闪烁。
所以我像这样加载我的图像(除了GlideApp
线条之外的简化):
// Do this when loading the fragment.
for (i in 0..9) {
for (j in 0..2) {
val resInt = getImages(i)[j] // Returns R.drawable.image1, R.drawable.image2 etc.
GlideApp.with(activity).load(resInt).diskCacheStrategy(DiskCacheStrategy.ALL).preload()
}
}
...
// Do this when pressing the buttons
loadImage(activity, getImages(0)[1], day_image_view) // Load R.drawable.image2
...
fun loadImage(context: Context, res: Int, imageView: ImageView) {
GlideApp.with(context).load(res).diskCacheStrategy(DiskCacheStrategy.ALL).dontAnimate().into(imageView)
}
谢谢你,祝你有美好的一天<3
解决方案
推荐阅读
- c# - 我应该在哪里存储过期的 REST API 身份验证令牌?
- java - 尝试写入结束元素时,无法发送消息、管道损坏、写入 XMLStreamWriter 时出错、没有打开的开始元素
- css - HTML/CSS - 如何以不同的方式对齐三个不同的元素
- java - Java - 为什么我不能在返回后将数组中的值设置为 null?
- android - 在 API 级别 23 中使用 Android 数据绑定
- java - 无法通过终端运行 Maven 测试 | 未能执行目标
- c++ - Bison 错误恢复建议
- reactjs - 在反应中将纯javascript脚本转换为类组件
- javascript - socket.io-client 通过代理
- mysql - Node.js MySQL - 为什么 UPDATE 语句也运行 SELECT,对于只写 MySQL 用户如何避免这种情况