Android: Carga asíncrona de imágenes por http

Para cargar imagenes remotas en el layout de forma asíncrona, sin bloquear la actividad.

Podéis usar esta clase:

package com.tu.package;

import java.io.InputStream;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ImageView;

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

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

	@Override
	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;
	}

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

Y para usarla…

new DownloadImageTask((ImageView) findViewById(R.id.idDelImageView)).execute("http://www.emm-gfx.net/wp-content/uploads/2012/09/thumb-mosh.png");

 




Josep Viciana

Programador de 27 años con una década de experiencia como programador. interesado en el diseño, ilustración y nuevas tecnologías. Dedicado desde siempre a la programación Web y desde hace algunos años también a la móvil.

6 comentarios

Podrias poner un ejemplo de como cargar un array de url’s?,

yo tengo un [String] array = new String[] { en otro archivo java y me gustaría cargarlo de forma asíncrona en imageview que tengo en un viewpager y me estoy volviendo loco :P.

Gracias,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *