Android Dersleri – 44 – Picasso Kütüphanesi Kullanımı

By | 25 Ekim 2020

Android Dersleri serisinin Picasso Kütüphanesi Kullanımı dersine hoş geldiniz. Firebase’in Storage konusuna giriş yapmadan önce birkaç konudan bahsetmek doğru olacaktır. Bunun için bu dersimizde Picasso kütüphanesinden bahsetmek istedim. Storage kısmında ses, resim ve video dosyaları ile işlemler yapacağız. Madem görsellerle ilgili bir konumuz olacak o halde Picasso’nun kullanımını da görelim.

Picasso kütüphanesi Android’te ne işe yarıyor, nerede ve nasıl kullanabiliriz sorularının cevabını vermeye çalışacağız.

Android Picasso Kütüphanesi Nedir?

Android uygulamalarda resimlerin yüklenmesi ve işlenmesi gibi işlemleri bizim yerimizi hızlıca yapan bir kütüphanedir.

Eğer Picasso kütüphanesinden faydalanmazsak normal şartlarda yapacağımız işlemler aşağıdadır.

  • Görselin URL’si alınır
  • Görseli indirmek için AsyncTask oluşturulur ve çalıştırılır
  • Elde edilen sonuç Bitmap olarak tutulur
  • Tutulan bitmap kaynak olarak belirtilir
  • Görüntü saklanır ve ardından görsel gözükecektir.

İşte Picasso bizi böyle bir zahmetten kurtarmış oluyor.

Android Picasso Kütüphanesi Kullanımı

Bir kütüphaneden faydalanacağımız için öncelikle bunu Gradle dosyamıza eklememiz gerekiyor. Bunun için build.gradle(Modele:app) dosyasına;

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

bunu eklememiz gerekiyor.

Nasıl kullanıldığını artık bir örnek üzerinden görelim.

activity_main.xml dosyası;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="16dp"
    android:id="@+id/linearLayout1"
    tools:context=".MainActivity">
    
    <ImageView
        android:id="@+id/img_picasso"
        android:layout_width="300dp"
        android:layout_height="300dp"/>
    
</LinearLayout>

MainActivity.java dosyası;

package com.mrcaracal.androiddersleriicinornekuygulama;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;

public class MainActivity extends AppCompatActivity {
    ImageView img_picasso;

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

        img_picasso = findViewById(R.id.img_picasso);
        String alinan_url = "https://www.mrcaracal.com/wp-content/uploads/2019/08/mrcaracal-logo-300x300.png";

        Picasso.get()
                .load(alinan_url)
                .resize(300, 300)
                .rotate(20)
                .into(img_picasso);
    }
}

Çıktısı;

Özellikler;

get : Görselin burada kullanılacağını belirttik. Daha önceden with(contex) kullanılıyordu.

load : Görselin nerden çekileceğini belirttik

resize : Görseli boyutlandırmak için kullandık

rotate : Saat yönünde kaç derece döndürüleceğini belirttik

into : Görselin nerede gösterileceğini belirttik

palceholder : Görsel gelene kadar başka bir görselin göszükmesini istersek kullanabiliriz. placeholder(R.drawable.x) şeklinde…

error : Eğer görsel yüklenirken bir hata gerçekleşirse yerine hangi resmin gösterilmesi gerektiğini ayarlayabiliriz. error(R.drawable.x) şeklinde…

onlyScaleDown : Resim yalnızca 6000×2000 boyutundan büyük ise yeniden boyutlandır

centerCrop : Görseli imageView’ın sınırlarına göre ölçeklendirir. ImageView’ın alanı tamamen kullanılır ama görseldeki fazlalıklar kırpılır

centerInside : Görseli imageView’ın sınırlarına göre ölçeklendirir. Resim tamamen gösterilir ama imageView’ın tamamını doldurmayabilir

fit : Hedef imageView’ın boyutlarını ölçer ve dahili olarak resim boyutunu imageView’ın boyutuna indirmek için resize() kullanır. Bilinmesi gereken bir şey vardır. Görselin gösterilmesi biraz zaman alabilir. Gecikmeye sebep olabilir yani.
Avantajına bakacak olursak görüntünün kalitesini etkilemeden mümkün olan en düşük çözünürlükte olmasıdır. Daha düşük çözünürlük önbellekte daha az veri tutulacağı anlamına gelir. Özetle biraz daha hızlı yükleme süresine göre daha düşük bellek etkisini tercih ediyorsanız, fit() harika bir araçtır.

Bu dersimizde bizi birçok zahmetten kurtaracak olan Picasso Kütüphanesi Kullanımı nasıldır onu öğrenmiş olduk. Bir sonraki dersimizde görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir