Photto nedir ?

Android Studio üzerinde Kotlin/Java ile geliştirilen uygulamalar için kullanabileceğiniz yardımcı kütüphanedir.

Bu kütüphane sayesinde, ImageView nesnesine;

  • Web üzerinden resim indirip gösterme (+Cache)
  • Drawable klasöründen resim gösterme
  • Asset klasöründen resim gösterme
  • Base64 string üzerinden resim gösterme
  • URI sınıfı üzerinden resim gösterme
  • Web üzerinden resim indirip gösterme / +Cache ile birlikte ImageLoadListener kullanımı sayesinde resim yüklendi, yüklenemedi yada yüklenirken hata oluştu gibi metot geri dönüşlerini dinleyebilirsiniz.
  • File sınıfı üzerinden resim gösterme

GitHub sayfasına buradan ulaşabilirsiniz. Github Photto

Projemize Photto kütüphanesini yükleyelim;

projeniz build.gradle dosyasında bulunan repositories scope'ları içerisine;

maven { url 'https://jitpack.io' }

ekleyiniz. Yani oluşacak görüntü aşağıdaki gibi olmalı;

allprojects {
	repositories { 
   	...
		maven { url 'https://jitpack.io' }
   }
}

Projeniz build.gradle(Module: app) içerisinde bulunan depentencies scope'u içerisine paketimizi de ekleyelim.

dependencies {
	implementation 'com.github.gungoronline:Photto:0.2.0'
}

Photto kütüphanesi nasıl kullanılır ?

URI sınıfı ile birlikte kullanımı;

new Photto.PhottoBuilder(
	getApplicationContext(),
	Uri.parse("android.resource://"+getPackageName()+"/drawable/ic_launcher_background"),
	(ImageView) findViewById(R.id.imageView)
).build();

Kodlar Photto.PhottoBuilder().build(); üretilip PhottoBuilder() parantezi içerisine eklenir. İlk argüman context, 2. argüman URI, 3. argüman gösterilecek ImageView nesnesinin kendisi olmalıdır.

Websitesinden resmi indirip ImageView üzerinde göstermek;

new Photto.PhottoBuilder(
	this,
	"https://images.unsplash.com/photo-1555992643-a97955e6aae6?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=401&q=80",
   (ImageView) findViewById(R.id.imageView)
).build();

Kodlar Photto.PhottoBuilder().build(); üretilip PhottoBuilder() parantezi içerisine eklenir. İlk argüman context, 2. argüman Web sitesi içerisindeki resmin adresi, 3. argüman gösterilecek ImageView nesnesinin kendisi olmalıdır. Bu PhottoBuilder sınıfı argümanlarını gönderirseniz, Resim her defasında internet sitesinden indirilmez, resim indirilir ve cache edilir. Daha önce indirmiş ise, cache üzerinden resmi çeker.

Websitesinden resmi indirip ImageView üzerinde göstermek (ImageLoadListener ile birlikte kullanımı;

new Photto.PhottoBuilder(
	getApplicationContext(),
	"https://images.unsplash.com/photo-1564149504817-d1378368526f?ixlib=rb-1.2.1&auto=format&fit=crop&w=1534&q=80",
	new Photto.PhottoBuilder.ImageLoadListener() {
		@Override
		public void onImageLoaded() {
			Log.d("PHOTTO", "Image Loaded");
		}
		@Override
		public void onError(int errorCode) {
			if(errorCode == PhottoError.URL_IS_BLANK){
				Log.d("PHOTTO","URL can not be blank !");
			}else if(errorCode == PhottoError.NETWORK_ERROR){
				Log.d("PHOTTO","No internet connection !");
			}else if(errorCode == PhottoError.NETWORK_ERROR_BUT_CACHE){
				Log.d("PHOTTO","No internet connection, but image getted from cache !");
			}
		} 
		@Override
		public void onImageLoading() {
			Log.d("PHOTTO", "Image Loading");
		}
	},
	(ImageView) findViewById(R.id.imageView)
).build();

File sınıfı ile birlikte kullanımı;

Eğer bir resmi Android içerisindeki bir klasörden göstermek isterseniz aşağıdaki metodu kullanabilirsiniz. Resmi göstermek için öncelikle uygulama ayarlarından Storage permission iznini açmanız gerekir.

new Photto.PhottoBuilder(
	getApplicationContext(),
	new File("/storage/emulated/0/cat.jpeg"),
	(ImageView) findViewById(R.id.imageView)
).build();

Drawable ile birlikte kullanımı;

new Photto.PhottoBuilder(
	this,
	R.drawable.ic_launcher_background,
	(ImageView) findViewById(R.id.imageView)
).build();

Asset klasöri üzerindeki bir resim ile birlikte kullanımı;

try {
	new Photto.PhottoBuilder(
		this,
		getAssets().open("android.jpg"),
		(ImageView) findViewById(R.id.imageView)
	).build();
} catch (IOException e) {
	e.printStackTrace();
}

Base64 stringi ile birlikte kullanımı;

new Photto.PhottoBuilder(
	this,
	"BASE64_STR",
	null,
	(ImageView) findViewById(R.id.imageView)
).build();
Bu makaleyi paylaşın:

3 Comments

Bir yorum bırakın