如何使用 DownloadCache 插件?
How to use the DownloadCache plugin?
我在我的 Android 项目中使用 MvvmCross。我有一个 MvxRecyclerView
,每个项目都包含一个图像(从 url 下载),并且有数百个项目,所以我想使用 DownloadCache
插件来帮助我管理images/memory 所以我的应用程序不会因 OutOfMemory 异常而崩溃。
理想情况下,当达到 image/memory 限制时,应释放下载的第一个图像(并且是 MvxRecyclerView
中最远的不可见项目)以为下一个可见项目及其图像。
我在这里找到了它的来源:
https://github.com/MvvmCross/MvvmCross/tree/develop/MvvmCross-Plugins/DownloadCache
如何使用此插件来实现此目的?
编辑
尝试了一些操作后,我遇到了调用 Mvx.Resolve<IMvxImageCache<byte[]>>().RequestImage(myImageUrl)
时遇到的错误
Failed to resolve type
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);
});
我觉得我做错了什么...
文档可用 here。文档似乎建议:
- 使用
MvxImageView
而不是 ImageView
。
- 在
Setup.GetPluginConfiguration
覆盖中使用 MvxDownloadCacheConfiguration
以根据需要自定义缓存选项。
我在我的 Android 项目中使用 MvvmCross。我有一个 MvxRecyclerView
,每个项目都包含一个图像(从 url 下载),并且有数百个项目,所以我想使用 DownloadCache
插件来帮助我管理images/memory 所以我的应用程序不会因 OutOfMemory 异常而崩溃。
理想情况下,当达到 image/memory 限制时,应释放下载的第一个图像(并且是 MvxRecyclerView
中最远的不可见项目)以为下一个可见项目及其图像。
我在这里找到了它的来源: https://github.com/MvvmCross/MvvmCross/tree/develop/MvvmCross-Plugins/DownloadCache
如何使用此插件来实现此目的?
编辑
尝试了一些操作后,我遇到了调用 Mvx.Resolve<IMvxImageCache<byte[]>>().RequestImage(myImageUrl)
Failed to resolve type 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);
});
我觉得我做错了什么...
文档可用 here。文档似乎建议:
- 使用
MvxImageView
而不是ImageView
。 - 在
Setup.GetPluginConfiguration
覆盖中使用MvxDownloadCacheConfiguration
以根据需要自定义缓存选项。