В FFImageLoading, как загрузить изображение в память в Xamarin Android? - PullRequest
0 голосов
/ 10 мая 2018

Делая это, я считаю, что мои изображения только кэшируются на диске:

ImageService.Instance.LoadUrl(item.profileImg)
.DownSample()
.BitmapOptimizations(true)
.LoadingPlaceholder("blank_profile_img.png", FFImageLoading.Work.ImageSource.CompiledResource)
.Into(holder.imgIcon);

1 Ответ

0 голосов
/ 10 мая 2018

Насколько я знаю, вы можете просто указать тип кэша, который вы хотите использовать для этого конкретного изображения, так как он хранится в ключе.

Так, например, один из случаев, когда я использую эту библиотеку, выглядит примерно так:

ImageService.Instance.LoadUrl(url)
                .WithPriority(LoadingPriority.High)
                .Retry(3, 200)
                .LoadingPlaceholder("ProfilePlaceholder.png", ImageSource.CompiledResource)
                .ErrorPlaceholder("ProfilePlaceholder.png", ImageSource.CompiledResource)
                .WithCache(FFImageLoading.Cache.CacheType.All)
                .Into(profileImage);

Ключевая часть:

.WithCache(FFImageLoading.Cache.CacheType.All)

Вы можете указать либо All, что означает, что он будет кэшироваться в IO и memory, либо вы можете выбрать его равным IO или просто memory.

Так что ваш будет выглядеть примерно так:

ImageService.Instance.LoadUrl(item.profileImg)
       .DownSample()
       .BitmapOptimizations(true)
       .LoadingPlaceholder("blank_profile_img.png", FFImageLoading.Work.ImageSource.CompiledResource)
       .WithCache(FFImageLoading.Cache.CacheType.Memory)
       .Into(holder.imgIcon);
...