我在我的Android項目中使用MvvmCross。我有一個MvxRecyclerView
,其中包含每個項目中的圖像(從網址下載),並有數百個項目,所以我想使用DownloadCache
插件來幫助我管理圖像/內存,所以我的應用程序不會崩潰OutOfMemory異常。如何使用DownloadCache插件?
理想情況下,當圖片/內存限制已達到時,下載的第一張圖片(並且是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);
});
我覺得我做錯了什麼......
而且綁定是如何工作的? 'MvxImageView'是否有一個屬性可以綁定圖像的URL,其他的一切都是由庫完成的? – Darius
你可以使用'ImageUrl'綁定。其他一切都應該由圖書館照顧。 –
我設置了'MvxDownloadCacheConfiguration.Default.MaxFiles = 1;',但是當我把'ImageUrl'綁定到互聯網上的兩張不同的圖片時,我能夠下載2張圖片。所以我不認爲這很簡單.. – Darius