如何从xamarin android中的url下载图像?

时间:2015-06-04 03:12:52

标签: android xamarin webclient

我正在尝试从网址下载图片。这是我的代码:

a

我的按钮下载点击了

<?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">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/edt_main_url"
        android:hint="URL"
        android:text="http://xamarin.com/resources/design/home/devices.png" />
    <Button
        android:text="Download"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btt_main_download" />
    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/prb_main_progress"
        android:visibility="gone" />
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/img_main_image"
        android:scaleType="centerInside" />
</LinearLayout>

当webClient完成下载时

void mBttDownload_Click(object sender, EventArgs e)
        {
            mPrbProgress.Visibility = ViewStates.Visible;

            var url = new Uri(mEdtURL.Text);

            WebClient webClient = new WebClient();
            webClient.DownloadDataAsync(url);

            webClient.DownloadDataCompleted += webClient_DownloadDataCompleted;
        }

但是e.Result是空的。我还在清单中设置了Internet权限。但没有变化!我怎样才能解决这个问题? 谢谢!

2 个答案:

答案 0 :(得分:1)

我建议使用UrlImageViewHelper组件:UrlImageViewHelper这非常棒。

Tis是一种古老的学校方式:Check in github

答案 1 :(得分:1)

对于想要使用预建库来帮助他们的用户,我也会为这个问题推荐这个问题的答案 -

Asynchronously Load Image from URL into ImageView in Xamarin Android

以下摘自 jzferino

特别是对于Droid,可以使用此 - https://components.xamarin.com/view/square.picasso

对于X-Platform IOS和Droid -

https://www.nuget.org/packages/Xamarin.FFImageLoading/(Nuget)

https://github.com/luberda-molinet/FFImageLoading(来源)

FFImageLoading还允许您在加载图像方面具有很大的灵活性 - 即对于droid:

https://github.com/luberda-molinet/FFImageLoading/wiki