179 votes

Charger l'image depuis l'URL

Les gars, j'ai un imageurl comme http://image10.bizrate-images.com/resize?sq=60&uid=2216744464 Je veux afficher une image de cette URL sur ImageView mais je ne peux pas le faire.

Comment cela sera-t-il réalisé?

331voto

Kyle Clegg Points 8441

La réponse acceptée ci-dessus est excellente si vous chargez l'image en fonction d'un clic de bouton. Toutefois, si vous le faites dans une nouvelle activité, l'interface utilisateur gèle pendant une seconde ou deux. En regardant autour de moi, j'ai trouvé qu'un simple asynchrone éliminait ce problème.

Pour utiliser un asynctask pour ajouter cette classe à la fin de votre activité:

 private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
  ImageView bmImage;

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

  protected Bitmap doInBackground(String... urls) {
      String urldisplay = urls[0];
      Bitmap mIcon11 = null;
      try {
        InputStream in = new java.net.URL(urldisplay).openStream();
        mIcon11 = BitmapFactory.decodeStream(in);
      } catch (Exception e) {
          Log.e("Error", e.getMessage());
          e.printStackTrace();
      }
      return mIcon11;
  }

  protected void onPostExecute(Bitmap result) {
      bmImage.setImageBitmap(result);
  }
}
 

Et appelez depuis votre méthode onCreate () en utilisant:

 new DownloadImageTask((ImageView) findViewById(R.id.imageView1))
        .execute(MY_URL_STRING);
 

Ça marche bien pour moi. :)

269voto

rajath Points 5325
URL url = new URL("http://image10.bizrate-images.com/resize?sq=60&uid=2216744464");
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);

5voto

koush Points 1406

UrlImageViewHelper remplir un ImageView avec une image qui se trouve à une URL. UrlImageViewHelper va automatiquement télécharger, de sauvegarder et de mettre en cache toutes les url de la BitmapDrawables. Dupliquer les url ne sera pas chargé en mémoire deux fois. Bitmap de la mémoire est gérée à l'aide d'une référence faible de la table de hachage, de sorte que dès que l'image n'est plus utilisée par vous, il sera ordures collectées automatiquement.

UrlImageViewHelper.setUrlDrawable(imageView, "http://example.com/image.png");

https://github.com/koush/UrlImageViewHelper

4voto

CapDroid Points 19038
A elle seule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X