Panduan Lengkap Library Picasso Android (Java)

Apa itu Picasso?

Picasso adalah library Android yang dikembangkan oleh Square untuk mempermudah proses memuat (loading) dan menampilkan gambar dari URL, file lokal, atau resource ke dalam ImageView. Library ini populer karena ringan, aman terhadap penggunaan memori, dan sangat mudah digunakan dalam aplikasi Android berbasis Java.


Keunggulan Menggunakan Picasso

1. Menghindari OutOfMemoryError

Picasso mengatur caching serta kompresi gambar secara otomatis sehingga mencegah aplikasi mengalami error memori.

2. Performa tinggi pada RecyclerView

Picasso mengoptimalkan loading gambar agar tidak menyebabkan lag saat pengguna melakukan scroll.

3. API sederhana

Penggunaan dasar hanya memerlukan satu baris kode.

4. Mendukung fitur lanjutan

Beberapa fitur unggulan Picasso:

  • Placeholder saat loading
  • Error image ketika gagal memuat gambar
  • Resize dan crop otomatis
  • Transformasi custom
  • Manajemen caching memori dan disk

Instalasi Library Picasso

Gradle (Groovy) – build.gradle (Module)

implementation 'com.squareup.picasso:picasso:2.8'

Gradle (Kotlin DSL) – build.gradle.kts

implementation("com.squareup.picasso:picasso:2.8")

Cara Menggunakan Picasso di Android (Java)

1. Memuat Gambar dari URL

String imageUrl = "https://example.com/image.jpg";

Picasso.get()
        .load(imageUrl)
        .into(imageView);

2. Menggunakan Placeholder dan Error Image

Picasso.get()
        .load(imageUrl)
        .placeholder(R.drawable.loading)
        .error(R.drawable.error)
        .into(imageView);

3. Resize dan Crop Gambar

Picasso.get()
        .load(imageUrl)
        .resize(300, 300)
        .centerCrop()
        .into(imageView);

4. Memuat Gambar dari File Lokal

File file = new File(getFilesDir(), "profile.png");

Picasso.get()
        .load(file)
        .into(imageView);

5. Memuat Gambar dari Drawable Resource

Picasso.get()
        .load(R.drawable.banner)
        .into(imageView);

6. Penggunaan Picasso di RecyclerView Adapter

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    String url = dataList.get(position).getImageUrl();

    Picasso.get()
            .load(url)
            .placeholder(R.drawable.loading)
            .error(R.drawable.error)
            .into(holder.imageView);
}

Transformasi Custom pada Picasso

Picasso mendukung transformasi gambar seperti crop custom, efek bulat, dan manipulasi bitmap lainnya.

1. Membuat Kelas Transformasi (Circle Crop)

public class CircleTransform 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 squared = Bitmap.createBitmap(source, x, y, size, size);
        Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());

        Canvas canvas = new Canvas(bitmap);
        Paint paint = new Paint();
        BitmapShader shader = new BitmapShader(squared, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
        paint.setShader(shader);
        paint.setAntiAlias(true);

        float radius = size / 2f;
        canvas.drawCircle(radius, radius, radius, paint);

        source.recycle();
        squared.recycle();

        return bitmap;
    }

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

2. Menggunakan Transformasi

Picasso.get()
        .load(imageUrl)
        .transform(new CircleTransform())
        .into(imageView);

Kesimpulan

Picasso merupakan library yang ringan, praktis, dan efisien dalam menangani proses loading gambar pada aplikasi Android. Dengan fitur caching otomatis, resize, placeholder, dan transformasi, Picasso dapat digunakan dalam berbagai kebutuhan seperti menampilkan gambar sederhana hingga integrasi kompleks pada RecyclerView.