私は複数のアイテムからなるリストビューを持っています。リスト内の各アイテムには、関連付けられたイメージが必要です。私は、各リスト項目を保持し、ロードしたい画像のURLを持つ配列アダプタを作成しました。Xamarin AndroidのImageViewにURLから非同期に画像をロードする
私は、Webリクエストを使用してイメージを非同期的にロードしようとしていますが、イメージがロードされた後にイメージを設定してビューに更新しようとしていますが、ビューはimmediatlyデフォルトイメージでレンダリングする必要があります。ここで
は、私はそうのように、私は私のHttpClientを初期化していた画像
private async Task<Bitmap> GetImageBitmapFromUrl(string url, ImageView imageView)
{
Bitmap imageBitmap = null;
try
{
var uri = new Uri(url);
var response = httpClient.GetAsync(uri).Result;
if (response.IsSuccessStatusCode)
{
var imageBytes = await response.Content.ReadAsByteArrayAsync();
if (imageBytes != null && imageBytes.Length > 0)
{
imageBitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
imageView.SetImageBitmap(imageBitmap);
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
return imageBitmap;
}
をロードしようとするために使用しています方法です:
httpClient = new HttpClient();
httpClient.Timeout = new TimeSpan(0, 0, 10);
httpClient.MaxResponseContentBufferSize = 256000;
そして、ここでは私がGetImageFromUrlメソッドを呼び出しています方法です
ImageView myImage = convertView.FindViewById<ImageView>(Resource.Id.AsyncImageView)
myImage.SetImageBitmap(null);
string url = GetItem(position);
GetImageBitmapFromUrl(url, myImage);
このコードを使用すると、要求は最終的に悪い要求で返されますが、私が使用しているURLをブラウザウィンドウに貼り付けると、期待しているイメージが表示されます。
私はピカソのソリューションを使いました。迅速な対応をありがとう! –
ナゲットは正方形です。ピカソ – smedasn