我在Android项目中使用MvvmCross。我有一个MvxRecyclerView
在每个项目中包含一个图像(从网址下载),并且有数百个项目,所以我想使用DownloadCache
插件来帮助我管理图像/内存我的应用程序不会因OutOfMemory异常而崩溃。
理想情况下,当达到图像/内存限制时,应释放下载的第一个图像(并且是MvxRecyclerView
中最远的不可见项目),以便为下一个可见项目腾出空间它的形象。
我在这里找到了它的来源: https://github.com/MvvmCross/MvvmCross/tree/develop/MvvmCross-Plugins/DownloadCache
如何使用此插件实现此目的?
修改
在尝试了几件事之后,当我打电话给Mvx.Resolve<IMvxImageCache<byte[]>>().RequestImage(myImageUrl)
无法解析类型 MvvmCross.Plugins.DownloadCache.IMvxLocalFileImageLoader
我正在注册这样的类型,所以我不知道为什么它无法解决它:
Mvx.ConstructAndRegisterSingleton<IMvxLocalFileImageLoader<Bitmap>, MvxAndroidLocalFileImageLoader>();
我正在注册这样的IMvxImageCache
:
Mvx.RegisterSingleton(typeof(IMvxImageCache<byte[]>), () =>
{
return new MvxImageCache<byte[]>(Mvx.Resolve<IMvxFileDownloadCache>(), 2, 5000000, true);
});
我觉得我做错了什么......
答案 0 :(得分:1)
文档可用now been fixed。文档似乎暗示:
MvxImageView
代替ImageView
。MvxDownloadCacheConfiguration
覆盖中的Setup.GetPluginConfiguration
根据需要自定义缓存选项。