Я новичок в разработке приложений, и у меня есть некоторые недостатки. У меня есть метод, который загружает изображение с сервера, а затем превращает его в растровое изображение, поэтому я могу назначить его ImageView. Проблема в том, что если я назову его более чем в 10 раз, приложение завершится сбоем с исключением OutOfMemory
. Я попытался удалить старый битмап с Dispose()
, но он не работает должным образом. Любой способ исправить это? Код:Xamarin - Как правильно расположить растровые изображения?
/...
string url = deviceModel.LastPhotoLink;
Bitmap imageBitmap = await new ImageDownloader().GetImageBitmapFromUrlAsync(url, Activity);
lastPhoto.SetImageBitmap(imageBitmap);
imageBitmap.Dispose();
/...
public async Task<Bitmap> GetImageBitmapFromUrlAsync(string url, Context context) {
WebClient client = new WebClient();
ISharedPreferences pref = context.GetSharedPreferences("UserSession", FileCreationMode.Private);
string cookie = pref.GetString("PHPSESSID", string.Empty);
client.Headers.Add(HttpRequestHeader.Cookie, "PHPSESSID=" + cookie);
var imageBytes = await Task.Run(() => client.DownloadData(url));
Bitmap imageBitmap = await Task.Run(() => BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length));
return imageBitmap;
}
Я не думаю, что есть. – Milen