Я пытаюсь создать одно примерное приложение в Xamarin/Android, которое загружает одно изображение из Интернета и отображает его в ImageView. Но вскоре после выполнения var imageContent = await httpClient.GetByteArrayAsync (ImageUrl);
пользовательский интерфейс/приложение зависает. Реакция обратного вызова не поступает. Я добавляю свой полный исходный код для справки. Пожалуйста, помогите, что неправильно в моей выборке.HttpClient не работает в Xamarin/Android App
[Activity (Label = "ImageDownloadSample", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
private const string ImageUrl = "http://www.olympusimage.com.sg/content/000006422.jpg";
private ImageView imgView;
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
var button = FindViewById<Button> (Resource.Id.downloadImage);
imgView = FindViewById<ImageView>(Resource.Id.imageView);
button.Click+=((sender, e) =>
DownloadImageAsync());
}
private async void DownloadImageAsync()
{
var httpClient = new HttpClient();
imgView.SetImageResource (Android.Resource.Drawable.IcMenuGallery);
var imageContent = await httpClient.GetByteArrayAsync (ImageUrl);
var documentsPath = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal);
string localFilename = "mytestImage.jpg";
string localPath = System.IO.Path.Combine (documentsPath, localFilename);
File.WriteAllBytes (localPath, imageContent);
var localImage = new Java.IO.File (localFilename);
if (localImage.Exists()) {
var bitmapImage = BitmapFactory.DecodeFile (localImage.AbsolutePath);
imgView.SetImageBitmap (bitmapImage);
}
}
}
}
Пожалуйста, помогите
Этот образец реализован с помощью WebClient. Я пытался с последним HttpClient. Почему мне нужно придерживаться старого метода ... ?? – StezPet
Возможно, вы этого не сделаете. Можете ли вы обновить вопрос, чтобы точно сказать, на какой строке висит ваше приложение? Есть ли что-нибудь написанное на консоли? –
Вы также должны использовать меньшее изображение. Я не думаю, что вы должны загружать 8 МБ изображения в мобильное приложение. –