1
Visual Studioを使用してMonoDroidを実験し始めました。MonoDroid ImageViewに画像をダウンロード
Webから画像をダウンロードしてImageViewコントロールに表示しようとしています。
残念ながら、いくつかの奇妙な理由により、画像がImageViewに表示されないことがあります。イメージは正常にダウンロードされたように見えますが、コントロールは空白のままです。
ここで間違っていることは何ですか?次のように定義されたMain.axmlで
private void DoClick(object sender, EventArgs e)
{
WebClient web = new WebClient();
web.DownloadDataCompleted += new DownloadDataCompletedEventHandler(web_DownloadDataCompleted);
web.DownloadDataAsync(new Uri(@"http://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png"));
Toast.MakeText(this, "Image downloaded!", ToastLength.Short).Show();
}
void web_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
if (e.Error != null)
{
Toast.MakeText(this, e.Error.Message, ToastLength.Short).Show();
}
else
{
Bitmap bm = BitmapFactory.DecodeByteArray(e.Result, 0, e.Result.Length);
ImageView imgView = FindViewById<ImageView>(Resource.Id.MyImageView);
imgView.SetImageBitmap(bm);
}
}
::次のように
コードがある
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/MyButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Hello"
/>
<ImageView
android:id="@+id/MyImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_below="@+id/MyButton"/>
</LinearLayout>