Загрузите изображение с url в ImageView - С#

Я хочу загрузить изображение из url в imageview в С# (android) после поиска в google, я не могу найти хороший результат, спасибо за помощь p >

Я использую студию xamarin

Ответ 1

Самый первый хит, который я получил от Google, - это thread на форумах Xamarin, обсуждающих эту точную проблему:

private Bitmap GetImageBitmapFromUrl(string url)
{
     Bitmap imageBitmap = null;

     using (var webClient = new WebClient())
     {
          var imageBytes = webClient.DownloadData(url);
          if (imageBytes != null && imageBytes.Length > 0)
          {
               imageBitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
          }
     }

     return imageBitmap;
}

var imageBitmap = GetImageBitmapFromUrl("http://xamarin.com/resources/design/home/devices.png");
imagen.SetImageBitmap(imageBitmap);

Ответ 2

Оба подхода работают, но это хорошая практика, чтобы сделать это асинхронно. Здесь у вас есть несколько хороших примеров:

Ответ 3

Использую ниже класс в Xamarin Android:

public class DownloadImageTask : AsyncTask
{
    private ImageView bmImage;
    private ProgressBar progressBar;

    public DownloadImageTask( ImageView bmImage , ProgressBar progressBar)
    {
        this.bmImage = bmImage;
        this.progressBar = progressBar;
    }

    protected override void OnPostExecute( Object result )
    {
        base.OnPostExecute(result);
        bmImage.SetImageBitmap(( Bitmap ) result);
        if (progressBar != null)
            progressBar.Visibility = ViewStates.Gone;
    }


    protected override Object DoInBackground( params Object[] @params )
    {
        var urldisplay = @params[0].ToString();
        Bitmap mIcon11 = null;
        try
        {
            var req = WebRequest.Create(urldisplay);
            var response = req.GetResponse();
            var stream = response.GetResponseStream();

            mIcon11 = BitmapFactory.DecodeStream(stream);
        }
        catch ( Exception e )
        {

        }
        return mIcon11;
    }
}

Исполнение:

new DownloadImageTask(imgProfile , progressBar).Execute(uri);