Android : Télécharger une image à partir d'une url

14 mai 2017 rdorigny 0 commentaires

Un article assez court pour expliquer comment faire pour récupérer une image sur le réseau Internet. Car sous Android ce n'est pas aussi simple que dans une page web ou l'on affiche l'image par son adresse (url).

Sous android, il faut gérer le téléchargement au préalable de l'image avant de l'afficher comme le ferait un navigateur Internet.



Il faut considérer le téléchargement de l'image comme une opération lente (par rapport à fonctionnement de l'application mobile localement sur le téléphone) et risquée (car potentiellement l'image n'est pas disponible). C'est pourquoi on utilise une tache asynchrone. C'est une sorte de processus qui se lance en tache de fond parallèlement à l’application mobile. L'avantage est que si cette action ne fonctionne pas, elle ne fait pas planter le programme principal. Et surtout, le travail se fait en parallèle, on se contente juste de rafraîchir l'image avec la fonction setImageBitmap().

La fonction de récupération:
// AsyckTask to download image (url given ) private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { ImageView bmImage; //constructor public DownloadImageTask(ImageView bmImage) { this.bmImage = bmImage; } // laoding picture and put it into bitmap 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; } //after downloading protected void onPostExecute(Bitmap result) { bmImage.setImageBitmap(result); } }


Pour lancer la récupération:
new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) .execute("http://www.lesite.fr/image.jpg");


Pseudonyme (obligatoire) :
Adresse mail (obligatoire) :
Site web :




© 2017 www.doritique.fr par Robert DORIGNY