Coil ile Görüntü Yükleme
Ağ görüntülerini Coil ile verimli şekilde yükleyin ve önbelleğe alın. Dönüşümler uygulayın (CircleCrop, RoundedCorners), yer tutucuları ve hataları yönetin.
Coil ile Görüntü Yükleme, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 6 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 6 dersten oluşur.
Neden Bir Görsel Kütüphanesi?
İnternetten görsel yüklemek şaşırtıcı derecede karmaşıktır:
- Arka plan iş parçacığında indirme
- Diske ve belleğe önbelleğe alma
- Verimli kod çözme (OOM çökmelerini önleme)
- Yükleme sırasında yer tutucu gösterme
- Hataları yönetme (bozuk bağlantı, ağ yok)
Coil tüm bunları tek satır kodla halleder.
Coil Nedir?
Coil (Coroutine Image Loader), Kotlin ve Coroutine'ler için geliştirilmiş modern bir Android görsel yükleme kütüphanesidir.
- Hafiftir — Glide veya Picasso'dan daha küçüktür
- Kotlin önceliklidir ve coroutine desteği sunar
- Yaşam döngüsünün farkındadır — yüklemeleri otomatik olarak iptal eder
- GIF, SVG ve video karelerini destekler
Coil Ekleme
Bağımlılığı app/build.gradle dosyasına ekleyin:
// app/build.gradle
dependencies {
implementation 'io.coil-kt:coil:2.6.0'
}
// Also make sure internet permission is in AndroidManifest.xml:
// <uses-permission android:name="android.permission.INTERNET" />Temel Görsel Yükleme
Tek satırla bir görseli ImageView içine yükleyin:
import coil.load
// In your Activity or Adapter:
binding.ivAvatar.load("https://picsum.photos/200")
// With a placeholder and error image:
binding.ivAvatar.load("https://picsum.photos/200") {
placeholder(R.drawable.ic_placeholder)
error(R.drawable.ic_error)
crossfade(true) // smooth fade-in animation
}RecyclerView İçinde Yükleme
Coil, bir ViewHolder yeniden kullanıldığında bekleyen yüklemeleri otomatik olarak iptal eder; böylece yanlış görsellerin yanlış satırlarda görünmesini önler:
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val post = getItem(position)
holder.tvTitle.text = post.title
holder.ivCover.load(post.imageUrl) {
placeholder(R.drawable.ic_image_placeholder)
error(R.drawable.ic_broken_image)
crossfade(300) // 300ms fade-in
size(200, 200) // resize to 200×200 pixels
}
}Dönüşümler
Yüklenen görsellere dönüşümler uygulayın:
CircleCropTransformation()— görseli daire şeklinde kırpar (avatarlar için idealdir)RoundedCornersTransformation(radius)— köşeleri yuvarlarBlurTransformation(context, radius)— bulanıklaştırma efekti uygular
Dönüşüm Örneği
Dairesel bir kullanıcı avatarı görüntüleyin:
import coil.load
import coil.transform.CircleCropTransformation
import coil.transform.RoundedCornersTransformation
// Circular avatar
binding.ivAvatar.load(user.profileImageUrl) {
transformations(CircleCropTransformation())
placeholder(R.drawable.ic_default_avatar)
error(R.drawable.ic_default_avatar)
}
// Rounded corners on a card image
binding.ivCover.load(post.coverUrl) {
transformations(RoundedCornersTransformation(16f))
crossfade(true)
}Önbelleğe Alma Davranışı
Coil, görselleri otomatik olarak iki düzeyde önbelleğe alır:
- Bellek önbelleği — en hızlı seçenektir; uygulama sonlandırıldığında temizlenir
- Disk önbelleği — uygulama yeniden başlatıldığında da korunur; varsayılan boyutu 250 MB'tır
Aynı URL iki kez yüklenirse ikinci yükleme önbellekten yapılır; ağ isteği gönderilmez.
Farklı Kaynaklardan Yükleme
Coil, görselleri yalnızca URL'lerden değil, çeşitli kaynaklardan da yükleyebilir:
// From a URL (most common)
imageView.load("https://example.com/image.jpg")
// From a URI (e.g., gallery image)
imageView.load(uri)
// From a drawable resource
imageView.load(R.drawable.my_image)
// From a File
imageView.load(File("/sdcard/photo.jpg"))
// From a bitmap
imageView.load(bitmap)Hızlı Kontrol
Bir kullanıcı profil fotoğrafını daire şeklinde görüntülemek için hangi Coil dönüşümünü kullanırsınız?
Özet: Coil ile Görsel Yükleme
Artık ağdaki görselleri verimli bir şekilde görüntüleyebilirsiniz:
- Tek bir Gradle bağımlılığıyla Coil'i ekleyin
imageView.load(url) { }— tek satırda yükleyin- Yer tutucu ve hata durumunda kullanılacak görseller
- Dönüşümler: CircleCrop, RoundedCorners, Blur
- Bellek ve disk düzeyinde otomatik önbelleğe alma
- URL'ler, URI'ler, dosyalar, çizilebilir kaynaklar ve bitmap'lerle çalışır
Sırada: hataları düzgün bir şekilde ele almak ve kullanıcılara iyi geri bildirim sağlamak var.
Sıkça Sorulan Sorular
“Coil ile Görüntü Yükleme” dersi ücretsiz mi?
Evet — “Coil ile Görüntü Yükleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 6 dersten oluşur.
“Coil ile Görüntü Yükleme” dersinde ne öğreneceğim?
Ağ görüntülerini Coil ile verimli şekilde yükleyin ve önbelleğe alın. Dönüşümler uygulayın (CircleCrop, RoundedCorners), yer tutucuları ve hataları yönetin. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Android Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 6 dersinin 2. dersidir.
“Coil ile Görüntü Yükleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Retrofit ve REST API'leri
- Coil ile Görüntü Yükleme
- Hata Yönetimi ve Kullanıcı Deneyimi
- Anlık Bildirimler
- WorkManager ve Arka Plan Görevleri
- Play Store'da Yayınlama