Glide ve Picasso Kütüphanelerinin Kullanımı


Merhaba arkadaşlar; bu yazımda sizlere, ImageView içinde görüntü yüklenmesi ve işlenmesini sağlayan Glide ve Picasso kütüphanelerinden bahsedeceğim. Bu kütüphanelerden bahsederken sizlerin de yorumuna bırakarak avantaj ve dezavantajlarına, minimize bir proje aracılığı ile değineceğim. Şimdi, isterseniz bu kütüphanelerden önce durumun nasıl olduğuna bir göz atalım.



Glide ve Picasso Kütüphanelerinden Önce Nasıldı?


ImageView içerisini, ilgili URL içindeki image ile doldurmak için sırasıyla aşağıdaki işlemleri sağlamamız gerekiyordu:


- Image’imizi içeren URL alınır.

- İlgili URL üzerinden image’imizi indirmek için AsyncTask oluşturulur.

- AsyncTask çalıştırılır. Sonucu, oluşturulan Bitmap içinde saklanır.

- Bitmap kaynak olarak tutulup ImageView içine aktarılır.



Glide’dan Sonra Ne Oldu?


- Image’imizi içeren URL alınıyor.

- .with(), .load(), .into() fonksiyonları ile tek seferde ImageView içine aktarım sağlanıyor.

- Bu fonksiyonlar kullanılarak image oluşturuluyor.



Picasso’dan Sonra Ne Oldu?


- Image’imizi içeren URL alınıyor.

- .get(), .load(), .into() fonksiyonları ile tek seferde ImageView içine aktarım sağlanıyor.



Glide ve Picasso'nun Karşılaştırılması


- OkHttp, Volley ve Retrofit; hem Glide hem de Picasso kütüphaneleri ile kullanılabilmektedir.

- GIF görüntüleme sadece Glide ile sağlanmaktadır.

- Resim kesme ve boyutlandırma her iki kütüphane ile de sağlanabilmektedir.

- Kullanım kolaylığı her iki kütüphane için de eşit diyebiliriz. Birazdan proje oluşturup olayları tetiklediğimizde sizlerin de yorumlarına sunmuş olacağım.

- Hız olarak iki kütüphanenin de hemen hemen eşit olduğunu söyleyebiliriz.

- Özelleştirip kullanma konusunda Glide, Picasso'ya göre daha verimli gözükmektedir.

- Sağlanan ağ üzerindeki görüntüyü kullanma işleminde ise Picasso, Glide'a göre bir tık önde gözüküyor.

- Kişilerin deneyimleri sorulduğunda ise Glide, Picasso'ya kıyasla bir adım öne çıkıyor.


Glide ve Picasso'nun Kullanımı


ADIM 1


Kütüphaneleri, projemizdeki build.gradle(Module:app)'e dahil ediyoruz.


Versiyonlar ilerleyen zamanlarda değişiklik gösterebilir. O sebeple; genel dökümantasyonlara ulaşmak adına Glide için buraya, Picasso için ise buraya tıklayarak ulaşabilirsiniz.


ADIM 2


İnternet üzerinden çekeceğimiz resimler için AndroidManifest.xml içerisinde ilgili iznimizi alıyoruz.


ADIM 3


İlgili görüntünün çekilip işlenmesi adına tetikleme görevinde kullanacağımız butonlarımızı ve ImageView’ımızı oluşturalım.



ADIM 4


Oluşturmuş olduğumuz butonlardan ilk ikisi; hareket içermeyen görüntüler için tasarlanmış olup ilki Glide, ikincisi ise Picasso ile görüntüyü işleyecektir.


Kalan iki butonu ise animasyon tarzında .gif uzantılı görüntüler için tasarlayacağız ve ilk iki buton gibi ilki Glide, ikincisi ise Picasso ile sağlanacaktır.


Glide ve Picasso kütüphanelerinin fonksiyonlarında kullanacağımız URL’leri ve ImageView’ımızı tanımlıyoruz.


Bu butonların click olayına bağlı olarak çalıştırılacak fonksiyonlarımızı yazıyoruz.


Not: Bu projede cihazdan veya uygulama içinden de görüntüyü çekip kullanarak işlem yapmak isteyebilirsiniz. Bu durumda cihazın içindeki dosyaları okuma ve yazma işlemlerini sağlayabilmeniz için gerekli olan izni aynı alana girmeniz gerekiyor ve dosya konumunu şu anda URL alanına girdiğimiz load(URL) fonksiyonu içinde bildirmeniz yeterli olacaktır.



SONUÇ


İlk butona tıkladığımızda ortaya çıkan hareketsiz görüntü (Glide)


İkinci butona tıkladığımızda ortaya çıkan hareketsiz görüntü (Picasso)



Üçüncü butona tıkladığımızda ortaya çıkan hareketli görüntü (Glide)




Dördüncü butona tıkladığımızda, Picasso'nun GIF görüntüleme desteği olmadığından dolayı GIF'ten alınan hareketsiz görüntü (Picasso)



Anlatım boyunca kullanmış olduğum projeme buradan ulaşabilirsiniz!


Umarım kararsız kalan arkadaşlar için faydalı olmuştur :)

Görüşmek dileğiyle…


#android #kotlin #image #imageloading #imagecaching #glide #picasso

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın