Picasso: descarga de imágenes y cache para Android

Picasso es una interesante biblioteca para la manipulación dinámica de imágenes en Android. Mediante su uso vamos a poder descargar imágenes desde una dirección HTTP y sincronizar su cache para evitar un uso indiscriminado de datos en el cliente, además de obviamente mejorar el rendimiento de nuestra aplicación.

Actualmente el proyecto se encuentra en su versión 2.3.3, mostrando un buen nivel de madurez y estabilidad. Además su licencia es Apache 2.0, garantizando su libre utilización tanto en aplicaciones personales como comerciales.

download images and cache android

Su principal ventaja: su facilidad de uso.

Ejemplo de uso:

Una vez anexada la biblioteca a nuestro proyecto, tan solo debemos emplear una linea de código para descargar nuestras imágenes:

Picasso.with(context).load(«http://i.imgur.com/DvpvklR.png»).into(imageView);

Un detalle que muchos agradecerán es su capacidad para redimensionar imágenes sin la necesidad de emplear complejas funciones, que en muchos casos terminan dando problemas de consumo excesivo de recurso, en especial en terminales de gama baja que no cuentan con excesivos recursos.

Picasso.with(context).load(url).resize(50,50).centerCrop().into(imageView)

Además podemos configurar la forma de transformar las imágenes añadiendo funciones personalizadas:

public class CropSquareTransformation implements Transformation{
@Override
public Bitmap transform(Bitmap source){
     int size = Math.min(source.getWidth(), source.getHeight());
     int x =(source.getWidth()- size)/2;
     int y =(source.getHeight()- size)/2;
     Bitmap result =Bitmap.createBitmap(source, x, y, size, size);

     if(result != source){  
        source.recycle();
     }
  return result;
}

@Override
public String key(){ return"square()"; }
}

La biblioteca es muy potente y tiene una documentación muy aceptable. Les recomiendo que vean el apartado relacionado al debug, en donde el autor nos presenta un mecanismo por el cual podemos saber el lugar (Red, disco o memoria) desde donde se obtiene la imagen mediante un indicador visual.

Categorizado en: