我们正在尝试将 图像预加载 到缓存内存中以便稍后加载它们(图像位于应用程序的 资产文件夹 中)
我们尝试了什么:
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);
}
}
原文由 An-droid 发布,翻译遵循 CC BY-SA 4.0 许可协议
最好的选择是自己处理缓存,它给了你更多的控制权并且应该很容易,因为你已经知道要加载哪些位图。
第一:设置一个 LruCache
第二:将位图加载到 LruCache
第三:使用缓存的位图