Android 프로젝트에서 MvvmCross를 사용하고 있습니다. 각 항목 (URL에서 다운로드 한 이미지)을 포함하는 MvxRecyclerView
을 가지고 있으며 항목 수가 수백 개이므로 내 앱이 이미지/메모리를 관리하는 데 도움이되는 DownloadCache
플러그인을 사용하여 앱이 충돌하지 않도록하고 싶습니다. OutOfMemory 예외입니다.DownloadCache 플러그인을 사용하는 방법은 무엇입니까?
이상적으로 이미지/메모리 제한에 도달하면 가장 먼저 다운로드 한 이미지 (MvxRecyclerView
에서 가장 멀리 보이지 않는 항목)는 이미지가있는 다음 보이는 항목을위한 공간을 확보하기 위해 해제해야합니다.
가 어떻게 이것을 달성하기 위해이 플러그인을 사용할 수 있습니까?
편집
몇 일을 시도 후, 나는 내가 전화 할 때 얻을이 오류 이상 붙어 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 개의 다른 이미지에 바인딩 할 때 2 개의 이미지를 다운로드 할 수있었습니다. 그래서 간단하지 않다고 생각하지 않습니다. – Darius