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.