Görselleri Nereye Koymalı ve ImageView'da Hızlıca Nasıl Göstermeli

Kerem Aydın·10 Temmuz 2026·⏱3 dk

Kısaca: Uygulama simgesini mipmap'e (tercihen uyarlanabilir) koyun, diğer tüm arayüz görsellerini drawable'a yerleştirin; düzen içinde android:src/@drawable/... veya kodda setImageResource / ağ kütüphaneleri aracılığıyla ekleyin.

Drawable ve mipmap arasındaki fark

  • drawable — genel arayüz kaynakları: vektörel (.xml), bitmap (.png, .webp, .jpg), seçiciler, şekiller. Düğmeler, arka plan resimleri, illüstrasyonlar için uygundur.
  • mipmap — başlatıcı simgesi için paketler (mipmap-*/ uyarlanabilir simgeler). Yalnızca başlatıcıdaki uygulama simgesi için kullanılır.
  • raw / assets — akış olarak erişim gerekiyorsa "ham" dosyalar; arayüz için genellikle kullanılmaz.

Pratik kural: Başlatıcı simgesi olmayan her şey drawable'a; başlatıcı simgesi mipmap'e.

Bir resmi literally nasıl eklersiniz (adımlar)

  1. Dosyayı hazırlayın: WebP veya vektör (.svg → vektör drawable) tercih edin. Dosya adları yalnızca küçük harfli Latin alfabesi, rakamlar ve alt çizgiler içermelidir (ic_profile.png).
  2. Normal bir resim için:
    • Android Studio'da: app → src → main → res → drawable — dosyayı sürükleyip bırakın veya sağ tıklayıp Reveal in Finder/Explorer seçeneğine tıklayın → yapıştırın ve senkronize edin.
    • Kaynağın R.drawable.ic_name olarak erişilebilir olduğundan emin olun.
  3. Uygulama simgesi için:
    • app modülüne sağ tıklayın → New → Image Asset → Launcher Icons (Adaptive and Legacy).
    • Ön plan/arka plan veya SVG yükleyin, Next → Finish'e tıklayın. Simgeler mipmap-* klasörlerinde ve (gerekirse) manifest dosyasında görünecektir.
  4. Kontrol: AndroidManifest.xml dosyasındaki android:icon özelliği @mipmap/ic_launcher değerine işaret etmelidir (simsenizi değiştirdiyseniz).

Örnek: XML ve Kodda ImageView

XML:

<ImageView
    android:id="@+id/imageLogo"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:src="@drawable/ic_logo"
    android:contentDescription="@string/logo_description"
    android:scaleType="centerCrop"/>

Kotlin:

val imageView: ImageView = findViewById(R.id.imageLogo)
imageView.setImageResource(R.drawable.ic_logo)

Java:

ImageView imageView = findViewById(R.id.imageLogo);
imageView.setImageResource(R.drawable.ic_logo);

Ağ üzerinden yükleme yapıyorsanız önbellekleme ve bellek yönetimi için Glide/Coil/Picasso kullanın.

Formatlar ve optimizasyon

  • Vektör drawable — simgeler ve basit illüstrasyonlar için (yer tasarrufu sağlar ve net ölçeklendirilir).
  • WebP — bitmap görüntüler için en iyi sıkıştırma kalitesi.
  • PNG — şeffaflık; JPG — şeffaflık olmayan fotoğraflar. Boyutları optimize edin: Onlarca megapiksel çözünürlükte kaynak dosyaları projeye dahil etmeyin — belleği ve GPU'yu yorarlar. Convert to WebP kullanın ve gerçek pikselleri beklenen gösterim boyutuna göre küçültün.

Aşırı büyük veya yeniden boyutlandırılmamış görüntüler bellek hatalarına (OutOfMemoryError) neden olur, özellikle listelerde (RecyclerView).

Yaygın hatalar

  • Yanlış dosya adları: boşluklar, Kiril alfabesi, büyük harfler → R oluşturulmaz.
  • Düzen içinde @drawable ve @mipmap karıştırılması.
  • contentDescription'un unutulması → erişilebilirlik sorunları.
  • Başlatıcı simgesinin drawable'da saklanması → başlatıcıda tutarsızlık riski.
  • Optimize edilmemiş kaynaklar → kötü performans ve büyük APK/AAB.

SSS

  • Tüm yoğunlukları drawable-* içine koymak gerekir mi?
    Hayır. Genellikle tek kaliteli bir görüntü + vektörel kaynaklar yeterlidir; başlatıcı simgesi için yoğunluklara uygun setlerle mipmap kullanın.
  • Üçüncü taraf kütüphaneler/motorlar için görüntüler nerede saklanır?
    Kütüphane akış veya dönüştürme olmadan ham dosya gerektiriyorsa assets veya raw içinde.
  • SVG nasıl eklenir?
    New → Vector Asset aracılığıyla içe aktarın veya Vector Drawable'a dönüştürün; karmaşık SVG'ler için XML düzenlemesi gerekebilir.

Kaynak R.drawable'da görünmüyorsa dosya adını, uzantısını ve konumunu (res/drawable) kontrol edin, ardından Build → Rebuild Project yapın.