Introducción

Esta es una Liberia extraordinaria que te va a simplificar mucho nuestro código y agilizar los tiempos a la hora de implementar imágenes a nuestro proyecto móvil en Android ya sea imágenes locales o remotas.

Esta librería de mucha utilidad fue desarrollada por la empresa Square quien también se le conoce por crear un librería conocida como Butter Knife.

Veamos su sintaxis.

Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);

Características de Picasso

  • Manejo del recycling de ImageView y cancelación de descargas en un adaptador.
  • Transformaciones de imágenes complejas con un uso mínimo de memoria.
  • Memoria automática y almacenamiento en caché.

Agregar la librería a nuestro Proyecto

Agregar en el archivo build.gradle de nuestro modulo del proyecto.

implementation 'com.squareup.picasso:picasso:2.71828'

Descargas Adapter

La reutilización del adaptador se detecta automáticamente y se cancela la descarga anterior.

@Override 
public void getView(int position, View convertView, ViewGroup parent) {
  SquaredImageView view = (SquaredImageView) convertView;
  if (view == null) {
    view = new SquaredImageView(context);
  }
  String url = getItem(position);

  Picasso.get().load(url).into(view);
}

Transformaciones de Imágenes

Transforme las imágenes para adaptarse mejor a los diseños y para reducir el tamaño de la memoria.

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

Cargas de diferentes Recursos

Los recursos, assets, archivos, proveedores de contenido son compatibles diferentes fuentes de imágenes.

Veamos el código.

Picasso.get().load(R.drawable.landing_screen).into(imageView1);
Picasso.get().load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.get().load(new File(...)).into(imageView3);

Veamos un Ejemplo

Vamos a cargar una imagen del directorio de recursos de Assets usando esta librería Picasso.

package com.xenosbit.testingmovil;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;

public class MainActivity extends AppCompatActivity {

    ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = (ImageView) findViewById(R.id.imagen);
        Picasso.get().load("file:///android_asset/ic_launcher.png");
    }
}

Como vimos en el articulo, lo fácil que es usar esta librería para simplificar muchas lineas de código y aumentar nuestra productividad.

nota