Çok yoğunluklu vektör grafikleri ekleme

Android Studio'da, projenize materyal simgeleri eklemenize ve Ölçeklenebilir Vektör Grafiği (SVG) ile Adobe Photoshop Belgesi (PSD) dosyalarını drawable vektör kaynakları olarak içe aktarmanıza yardımcı olan Vector Asset Studio adlı bir araç bulunur. Bitmap'ler yerine drawable vektörler kullanmak APK'nızın boyutunu küçültür. Çünkü aynı dosya, resim kalitesinde kayıp olmadan farklı ekran yoğunlukları için yeniden boyutlandırılabilir. Vector Asset Studio, drawable vektörleri desteklemeyen eski Android sürümleri için derleme sırasında drawable vektörlerinizi her ekran yoğunluğuna uygun farklı bitmap boyutlarına dönüştürebilir.

Vector Asset Studio hakkında

Vector Asset Studio, projeye resmi açıklayan bir XML dosyası olarak vektör grafik ekler. Tek bir XML dosyasını yönetmek, çeşitli çözünürlüklerdeki birden fazla raster grafiği güncellemekten daha kolay olabilir.

Jetpack Compose ile drawable vektörleri kullanmak için minimum API düzeyini Android 5.0 (API düzeyi 21) ve sonraki sürümler olarak ayarlamanız gerekir.

Android 4.4 (API düzeyi 20) ve önceki sürümler, drawable vektörleri desteklemez. Minimum API düzeyiniz bu aralıktaysa Vector Asset Studio iki seçenek sunar:

  • PNG dosyaları oluşturma (varsayılan): Vector Asset Studio, drawable vektörün raster resimlerini oluşturur ve hem vektör hem de raster drawable'ları APK'da paketler. Kotlin kodunda Drawable veya XML kodunda @drawable olarak drawable vektörlere başvurabilirsiniz. Uygulamanız çalıştığında, API düzeyine bağlı olarak ilgili vektör veya raster resim otomatik olarak görüntülenir.
  • AndroidX 1.0.0 veya sonraki bir sürümü kullanın: Yalnızca drawable vektörleri kullanmak için Vector Asset Studio'yu çalıştırmadan önce build.gradle dosyanızı AndroidX bölümünde açıklandığı şekilde değiştirin. AndroidX'teki VectorDrawableCompat sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde VectorDrawable özelliğini desteklemenize olanak tanır.

Desteklenen vektör grafik türleri

Google Materyal Tasarım spesifikasyonu, Android uygulamalarınızda kullanabileceğiniz materyal simgeleri sağlar. Vector Asset Studio, materyal simgelerini seçmenize, içe aktarmanıza ve boyutlandırmanıza, ayrıca opaklığı ve sağdan sola (RTL) yansıtma ayarını tanımlamanıza yardımcı olur.

Vector Asset Studio, kendi SVG ve PSD dosyalarınızı içe aktarmanıza da olanak tanır. SVG, World Wide Web Consortium'un (W3C) XML tabanlı açık bir standardıdır. PSD dosya biçimi, Adobe Photoshop özelliklerini destekler. Vector Asset Studio, temel standartları destekler ancak tüm SVG ve PSD özelliklerini desteklemez. Bir SVG veya PSD dosyası belirttiğinizde Vector Asset Studio, grafik kodunun desteklenip desteklenmediğiyle ilgili anında geri bildirim verir. Dosyayı VectorDrawable kodu içeren bir XML dosyasına dönüştürür. Hata alırsanız drawable vektörünüzün istediğiniz gibi göründüğünü doğrulamanız gerekir. İzin verilen PSD özellikleri hakkında daha fazla bilgi için PSD dosyaları için destek ve kısıtlamalar başlıklı makaleyi inceleyin.

Android 5.0 (API düzeyi 21) ve sonraki sürümlerde VectorDrawable sınıfının özelliklerini canlandırmak için AnimatedVectorDrawable sınıfını kullanabilirsiniz. AndroidX ile Android 3.0 (API düzeyi 11) ve sonraki sürümlerde VectorDrawable sınıfına animasyon eklemek için AnimatedVectorDrawableCompat sınıfını kullanabilirsiniz. Daha fazla bilgi için Compose'da animasyonlu vektörel görüntüler başlıklı makaleyi inceleyin.

SVG ve PSD dosyalarıyla ilgili dikkat edilmesi gereken noktalar

Drawable vektörler, materyal simgeleri gibi temel simgeler için en iyi sonucu verir. Uygulama başlatma simgeleri genellikle çok ayrıntılıdır. Bu nedenle, raster resim olarak daha iyi sonuç verirler.

Bir drawable vektörün ilk yüklemesi, karşılık gelen raster görüntüden daha fazla CPU döngüsü gerektirebilir. Sonrasında, bellek kullanımı ve performans açısından ikisi arasında benzerlik görülür. Vektörel görüntüleri maksimum 200 x 200 dp ile sınırlamanızı öneririz. Aksi takdirde çizim çok uzun sürebilir.

Drawable vektörler bir veya daha fazla rengi desteklese de çoğu durumda simgeleri siyah (android:fillColor="#FF000000") renge boyamak mantıklıdır. Bu yaklaşımı kullanarak düzene yerleştirdiğiniz drawable vektöre renk tonu ekleyebilirsiniz. Böylece simge rengi, renk tonu rengine dönüşür. Simge rengi siyah değilse simge rengi, ton rengiyle karışabilir.

Drawable vektör geriye dönük uyumluluk çözümleri

Aşağıdaki tabloda, geriye dönük uyumluluk için kullanabileceğiniz iki teknik özetlenmektedir:

Teknik APK'daki çizilebilir öğeler VectorDrawable XML öğeleri Sürüm Derleme işaretleri Uygulama kodu
PNG oluşturma Vektör ve raster Alt küme destekleniyor

SVG: Gradle için Android eklentisi 1.5.0 veya sonraki sürümler

PSD: Android Studio 2.2 veya sonraki sürümler

Varsayılan Çeşitli kodlama teknikleri desteklenir.
AndroidX 1.0 veya daha yeni bir sürüm Vektör Tam destek Gradle için Android eklentisi 3.2 veya sonraki sürümler Destek kitaplığı ifadeleri gerekli Desteklenen kodlama tekniklerinin alt kümesi

Vektör çizilebilirler kullanıldığında daha küçük bir APK oluşturulabilir ancak vektör çizilebilirlerin ilk yüklemesi daha uzun sürebilir.

PNG oluşturma

Android 5.0 (API düzeyi 21) ve sonraki sürümler, drawable vektör desteği sunar. Uygulamanızın minimum API düzeyi daha düşükse Vector Asset Studio, drawable vektör dosyasını projenize ekler. Ayrıca derleme sırasında Gradle, çeşitli çözünürlüklerde PNG raster resimler oluşturur. Gradle, bir build.gradle dosyasında alana özgü dil (DSL) generatedDensities özelliği tarafından belirtilen PNG yoğunluklarını oluşturur.

Android 5.0 (API düzeyi 21) ve sonraki sürümlerde Vector Asset Studio, tüm VectorDrawable öğelerini destekler. Android 4.4 (API düzeyi 20) ve önceki sürümlerle geriye dönük uyumluluk için Vector Asset Studio aşağıdaki XML öğelerini destekler:

<vector>

  • android:width
  • android:height
  • android:viewportWidth
  • android:viewportHeight
  • android:alpha

<group>

  • android:rotation
  • android:pivotX
  • android:pivotY
  • android:scaleX
  • android:scaleY
  • android:translateX
  • android:translateY

<path>

  • android:pathData
  • android:fillColor
  • android:strokeColor
  • android:strokeWidth
  • android:strokeAlpha
  • android:fillAlpha
  • android:strokeLineCap
  • android:strokeLineJoin
  • android:strokeMiterLimit

Vector Asset Studio'nun oluşturduğu XML kodunu değiştirebilirsiniz ancak bu, en iyi uygulamalardan biri değildir. Kodda değerleri değiştirmek, geçerli ve statik oldukları sürece herhangi bir soruna neden olmaz. XML öğeleri eklemek istiyorsanız bunların minimum API düzeyinize göre desteklendiğinden emin olmanız gerekir.

AndroidX

Bu teknik, AndroidX 1.0 veya sonraki bir sürümü ve Gradle için Android eklentisi 3.2 veya sonraki bir sürümü gerektirir ve yalnızca drawable vektörleri kullanır. AndroidX'teki VectorDrawableCompat sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde VectorDrawable özelliğini desteklemenize olanak tanır.

Vector Asset Studio'yu kullanmadan önce build.gradle dosyanıza bir ifade eklemeniz gerekir:

Kotlin

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation("androidx.appcompat:appcompat:1.7.1")
}

Modern

android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.1'
}

Vector Asset Studio'yu çalıştırma

Vector Asset Studio'yu başlatmak için:

  1. Android Studio'da bir Android uygulama projesi açın.

  2. Project (Proje) penceresinde Android görünümünü seçin.

  3. res klasörünü sağ tıklayıp New (Yeni) > Vector Asset'i (Vektör Öğesi) seçin.

    Diğer bazı proje görünümlerinde ve klasörlerinde de bu menü öğesi bulunur.

    Vector Asset Studio açılır.

    Materyal simgesi seçimini gösteren Vector Asset Studio.
    Şekil 1. Vector Asset Studio'yu kullanabilirsiniz.
  4. Bunun yerine Need Newer Android Plugin for Gradle (Gradle için Daha Yeni Android Eklentisi Gerekli) iletişim kutusu görünürse Gradle sürümünüzü aşağıdaki gibi düzeltin:

    1. File (Dosya) > Project Structure'ı (Proje Yapısı) seçin.

    2. Project Structure (Proje Yapısı) iletişim kutusunda Project'i (Proje) seçin.

    3. Android Plugin Version (Android Eklenti Sürümü) alanında, Gradle için Android eklentisi sürümünü 1.5.0 veya daha yeni bir sürüm olarak değiştirip OK'i (Tamam) tıklayın.

      Gradle, projeyi senkronize eder.

    4. Project (Proje) penceresinin Android görünümünde res klasörünü sağ tıklayın ve New (Yeni) > Vector Asset'i (Vektör Öğesi) seçin.

      Vector Asset Studio açılır.

  5. Vektör grafik içe aktarma ile devam edin.

Vektörel grafik içe aktarma

Vector Asset Studio, uygulama projenize vektör grafik dosyası aktarmanıza yardımcı olur. Aşağıdaki prosedürlerden birini uygulayın:

Materyal simgesi ekleme

Vector Asset Studio'yu açtıktan sonra aşağıdaki adımları uygulayarak bir materyal simgesi ekleyebilirsiniz:

  1. Vector Asset Studio'da Küçük resim'i seçin.

  2. Küçük resim alanında düğmeyi tıklayın.

  3. Simge Seç iletişim kutusu açılır. Menüden bir simge kategorisi seçerek veya arama alanına yazarak hangi simgelerin görüneceğini filtreleyebilirsiniz (Şekil 2).

    Vector Asset Studio'da materyal simgelerini filtreleme.
    Şekil 2. Vector Asset Studio'da materyal simgelerini filtreleme

    Bir materyal simgesi seçip Tamam'ı tıklayın. Simge, Vector Drawable Preview (Vektör Çizilebilir Önizleme) bölümünde görünür.

  4. İsteğe bağlı olarak kaynak adını, boyutunu, opaklığını ve sağdan sola (RTL) yansıtma ayarını değiştirebilirsiniz:

    • Ad: Varsayılan adı kullanmak istemiyorsanız yeni bir ad yazın. Vector Asset Studio, kaynak adı projede zaten mevcutsa otomatik olarak benzersiz bir ad oluşturur (adın sonuna bir sayı ekler). Ad yalnızca küçük harf, alt çizgi ve rakam içerebilir.

    • Geçersiz kıl: Resmin boyutunu ayarlamak istiyorsanız bu seçeneği belirleyin. Yeni bir boyut yazdığınızda değişiklik önizleme alanında gösterilir.

      Varsayılan boyut, Materyal Tasarım spesifikasyonunda tanımlanan 24 x 24 dp'dir. Varsayılana dönmek için onay kutusunun işaretini kaldırın.

    • Opaklık: Resmin opaklığını ayarlamak için kaydırma çubuğunu kullanın. Değişiklik, önizleme alanında görünür.

    • RTL düzeni için otomatik yansıtmayı etkinleştir: Düzen soldan sağa yerine sağdan sola olduğunda yansıtılmış bir görüntünün gösterilmesini istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola okunur. Ok simgeniz varsa bu durumda simgenin ayna görüntüsünü göstermek isteyebilirsiniz. Eski bir projeyle çalışıyorsanız uygulama manifestinize android:supportsRtl="true" öğesini de eklemeniz gerekebilir. Otomatik yansıtma, Android 5.0 (API düzeyi 21) ve sonraki sürümlerde ve AndroidX ile desteklenir.

  5. İleri'yi tıklayın.

  6. İsterseniz modül ve kaynak dizinini değiştirebilirsiniz:

    • Res Directory (Res Dizini): Drawable vektörü eklemek istediğiniz kaynak grubu kaynağını seçin: src/main/res, src/debug/res, src/release/res veya kullanıcı tanımlı bir kaynak grubu. Ana kaynak grubu, hata ayıklama ve sürüm dahil olmak üzere tüm derleme değişkenleri için geçerlidir. Hata ayıklama ve yayın kaynak grupları, ana kaynak grubunu geçersiz kılar ve bir derlemenin tek bir sürümü için geçerli olur. Hata ayıklama kaynak grubu yalnızca hata ayıklama için kullanılır. Yeni bir kaynak grubu tanımlamak için File (Dosya) > Project Structure (Proje Yapısı) > app (uygulama) > Build Types'ı (Derleme Türleri) seçin. Örneğin, bir beta kaynak grubu tanımlayabilir ve sağ alt köşesinde "BETA" metni bulunan bir simge sürümü oluşturabilirsiniz. Daha fazla bilgi için Derleme Değişkenlerini Yapılandırma başlıklı makaleyi inceleyin.

    Output Directories (Çıkış Dizinleri) alanında, drawable vektör ve görüneceği dizin gösterilir.

  7. Son'u tıklayın.

    Vector Asset Studio, drawable vektörü tanımlayan bir XML dosyasını app/src/main/res/drawable/ klasöründeki projeye ekler. Project penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görebilirsiniz.

  8. Projeyi derleyin.

    Minimum API düzeyi Android 4.4 (API düzeyi 20) ve daha düşükse ve AndroidX tekniğini etkinleştirmediyseniz Vector Asset Studio, PNG dosyaları oluşturur. Project penceresinin Project Files görünümünde, oluşturulan PNG ve XML dosyalarını app/build/generated/res/pngs/debug/ klasöründe görebilirsiniz.

    Oluşturulan bu raster dosyalarını düzenlememeli, bunun yerine vektör XML dosyasıyla çalışmalısınız. Derleme sistemi, gerektiğinde raster dosyalarını otomatik olarak yeniden oluşturur. Bu nedenle, bunları saklamanız gerekmez.

SVG veya PSD dosyasını içe aktarma

Vector Asset Studio'yu açtıktan sonra SVG veya PSD dosyalarını aşağıdaki şekilde içe aktarabilirsiniz:

  1. Vector Asset Studio'da Local file'ı (Yerel dosya) seçin.

    Dosya yerel bir sürücüde olmalıdır. Örneğin, ağda bulunuyorsa önce yerel bir sürücüye indirmeniz gerekir.

  2. … simgesini tıklayarak bir Resim dosyası belirtin.

    Resim, Vector Drawable Preview'da (Vektör Çizilebilir Önizleme) görünür.

    SVG veya PSD dosyası desteklenmeyen özellikler içeriyorsa Şekil 3'te gösterildiği gibi Vector Asset Studio'nun alt kısmında bir hata mesajı görünür.

    SVG içe aktarma hatalarını gösteren Vector Asset Studio.
    Şekil 3. Vector Asset Studio'da bazı hatalar gösteriliyor.

    Hata görürseniz içe aktarılan drawable vektörün doğru şekilde oluşturulduğundan emin olmanız gerekir. Hataları görüntülemek için listeyi kaydırın.

    Desteklenen öğelerin listesi için Drawable Vektör Geriye Dönük Uyumluluk Çözümleri başlıklı makaleyi inceleyin. İzin verilen PSD dosyaları hakkında daha fazla bilgi için PSD Dosyaları İçin Destek ve Kısıtlamalar başlıklı makaleyi inceleyin.

  3. İsteğe bağlı olarak kaynak adını, boyutunu, opaklığını ve sağdan sola (RTL) yansıtma ayarını değiştirebilirsiniz:

    • Ad: Varsayılan adı kullanmak istemiyorsanız yeni bir ad yazın. Vector Asset Studio, kaynak adı projede zaten mevcutsa otomatik olarak benzersiz bir ad oluşturur (adın sonuna bir sayı ekler). Ad yalnızca küçük harf, alt çizgi ve rakam içerebilir.

    • Geçersiz kıl: Resmin boyutunu ayarlamak istiyorsanız bu seçeneği belirleyin. Seçtiğinizde boyut, resmin kendi boyutuna değişir. Boyutu her değiştirdiğinizde, değişiklik önizleme alanında görünür. Varsayılan boyut, Materyal Tasarım spesifikasyonunda tanımlanan 24 x 24 dp'dir.

    • Opaklık: Resmin opaklığını ayarlamak için kaydırma çubuğunu kullanın. Değişiklik, önizleme alanında görünür.

    • RTL düzeni için otomatik yansıtmayı etkinleştir: Düzen soldan sağa yerine sağdan sola olduğunda yansıtılmış bir görüntünün gösterilmesini istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola okunur. Ok simgeniz varsa bu durumda simgenin ayna görüntüsünü göstermek isteyebilirsiniz. Eski bir projeyle çalışıyorsanız uygulama manifestinize android:supportsRtl="true" eklemeniz gerekebilir. Otomatik yansıtma, Android 5.0 (API düzeyi 21) ve sonraki sürümler ile AndroidX tarafından desteklenir.

  4. İleri'yi tıklayın.

  5. İsterseniz kaynak dizinini değiştirebilirsiniz:

    • Res Directory (Res Dizini): Drawable vektörü eklemek istediğiniz kaynak grubu kaynağını seçin: src/main/res, src/debug/res, src/release/res veya kullanıcı tanımlı bir kaynak grubu. Ana kaynak grubu, hata ayıklama ve yayınlama dahil olmak üzere tüm derleme varyantları için geçerlidir. Hata ayıklama ve yayın kaynak grupları, ana kaynak grubunu geçersiz kılar ve bir derlemenin tek bir sürümüne uygulanır. Hata ayıklama kaynak grubu yalnızca hata ayıklama için kullanılır. Yeni bir kaynak grubu tanımlamak için Dosya > Proje Yapısı > uygulama > Derleme Türleri'ni seçin. Örneğin, bir beta kaynak grubu tanımlayabilir ve sağ alt köşesinde "BETA" metni bulunan bir simge sürümü oluşturabilirsiniz. Daha fazla bilgi için Derleme Değişkenlerini Yapılandırma başlıklı makaleyi inceleyin.

    Output Directories (Çıkış Dizinleri) alanında, drawable vektör ve görüneceği dizin gösterilir.

  6. Son'u tıklayın.

    Vector Asset Studio, drawable vektörü tanımlayan bir XML dosyasını app/src/main/res/drawable/ klasöründeki projeye ekler. Project penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görebilirsiniz.

  7. Projeyi derleyin.

    Minimum API düzeyi Android 4.4 (API düzeyi 20) ve daha düşükse ve AndroidX tekniğini etkinleştirmediyseniz Vector Asset Studio, PNG dosyaları oluşturur. Project penceresinin Project Files görünümünde, oluşturulan PNG ve XML dosyalarını app/build/generated/res/pngs/debug/ klasöründe görebilirsiniz.

    Oluşturulan bu raster dosyalarını düzenlememeli, bunun yerine vektör XML dosyasıyla çalışmalısınız. Derleme sistemi, gerektiğinde raster dosyalarını otomatik olarak yeniden oluşturur. Bu nedenle, bunları saklamanız gerekmez.

Jetpack Compose'da bir vektör öğesine referans verme

Vector Asset Studio'yu kullanarak res/drawable klasörünüze bir öğe ekledikten sonra kodunuzda bu öğeye referans verebilirsiniz.

Jetpack Compose'da vektörünüzü görüntülemenin en yaygın yolu Icon veya Image composable'ını kullanmaktır.

Icon composable'ı, küçük ve tek renkli öğeleri göstermenin standart yoludur. Materyal Tasarım ilkeleri için yerleşik destek sunar. Örneğin, Materyal 3 temalarına göre dinamik renklendirme uygular ve içerik açıklamaları aracılığıyla otomatik erişilebilirlik sağlar.

painterResource API'sini kullanarak composable'a XML vektör öğeleri sağlayın:

Icon(
    painter = painterResource(id = R.drawable.ic_speedometer),
    tint = MaterialTheme.colorScheme.primary, // Applies dynamic theme color
    contentDescription = "Current Speed", // Essential for accessibility
)

Karmaşık ve çok renkli vektörler için Image composable'ı kullanın:

Image(
     painter = painterResource(id = R.drawable.ic_complex_vector),
     contentDescription = null // Decorative element
)

Bir görüntüyü özelleştirme veya performansı optimize etme gibi diğer karmaşık senaryolar için Görüntülerle çalışma başlıklı makaleyi inceleyin. Vektörlere animasyon ekleme hakkında bilgi edinmek için Compose'da animasyonlu vektörel görüntüler başlıklı makaleyi inceleyin.

Vector Asset Studio tarafından oluşturulan XML kodunu değiştirme

Drawable vektör XML kodunu değiştirebilirsiniz ancak PNG'leri ve derleme sırasında oluşturulan ilgili XML kodunu değiştiremezsiniz. Ancak bunu önermiyoruz.

PNG oluşturma tekniğini kullanırken Vector Asset Studio, drawable vektör ile PNG'lerin eşleştiğinden ve manifest dosyasının doğru kodu içerdiğinden emin olur. Android 4.4 (API düzeyi 20) ve önceki sürümlerde desteklenmeyen kodlar eklerseniz vektör ve PNG resimleriniz farklı olabilir. Ayrıca manifest dosyasının, değişikliklerinizi destekleyecek kodu içerdiğinden emin olmanız gerekir.

AndroidX tekniğini kullanmıyorsanız vektör XML dosyasını değiştirmek için:

  1. Project (Proje) penceresinde, drawable klasöründe oluşturulan vektör XML dosyasını çift tıklayın.

    XML dosyası, düzenleyici ve Önizleme pencerelerinde görünür.

    Kod Düzenleyici ve Önizleme penceresinde görüntülenen bir vektör XML dosyası.
    Şekil 4. Kod Düzenleyici ve Önizleme penceresinde görüntülenen bir vektör XML dosyası.
  2. XML kodunu, minimum API düzeyinin desteklediği özelliklere göre düzenleyin:

    • Android 5.0 (API düzeyi 21) ve sonraki sürümler: Vector Asset Studio, tüm Drawable ve VectorDrawable öğelerini destekler. XML öğeleri ekleyebilir ve değerleri değiştirebilirsiniz. Jetpack Compose için drawable vektörü ImageVector'e yükleyerek daha fazla özelleştirme yapabilirsiniz.

    • Android 4.4 (API düzeyi 20) ve önceki sürümler: Vector Asset Studio, tüm Drawable öğelerini ve VectorDrawable öğelerinin bir alt kümesini destekler. Liste için Drawable Vektör Geriye Dönük Uyumluluk Çözümleri bölümüne bakın. Oluşturulan koddaki değerleri değiştirebilir ve desteklenen XML öğeleri ekleyebilirsiniz.

  3. Projeyi derleyin ve drawable vektör ile karşılık gelen raster resimlerin aynı göründüğünden emin olun.

    Oluşturulan PNG'lerin, farklı oluşturma motorları ve derlemeden önce drawable vektörde yapılan değişiklikler nedeniyle Önizleme penceresinde uygulamadakinden farklı görünebileceğini unutmayın. Vector Asset Studio tarafından oluşturulan vektör XML dosyasına kod eklerseniz Android 4.4 (API düzeyi 20) ve önceki sürümlerde desteklenmeyen özellikler, oluşturulan PNG dosyalarında görünmez. Bu nedenle, kod eklediğinizde oluşturulan PNG'lerin drawable vektörle eşleştiğini her zaman kontrol etmeniz gerekir. Bunun için Project penceresinin Project Files görünümünde PNG'yi çift tıklayabilirsiniz. Kodunuz çizilebilir öğeye referans verdiğinde, Kod Düzenleyici'nin sol kenar boşluğunda da PNG resmi gösterilir (Şekil 5'te gösterildiği gibi).

    Kod Düzenleyici'nin sol kenar boşluğunda gösterilen PNG resmi.
    Şekil 5. Kod Düzenleyici'nin sol kenar boşluğunda gösterilen PNG resmi.

Projeden drawable vektör silme

Bir projeden drawable vektörü kaldırmak için:

  1. Project (Proje) penceresinde, oluşturulan vektör XML dosyasını seçip Delete (Sil) tuşuna basarak (veya Edit (Düzenle) > Delete'i (Sil) seçerek) silin.

    Güvenli Silme iletişim kutusu görünür.

  2. İsteğe bağlı olarak, dosyanın projede nerede kullanıldığını bulmak için seçenekleri belirleyin ve OK'i (Tamam) tıklayın.

    Android Studio, dosyayı projeden ve sürücüden siler. Ancak projenizde dosyanın kullanıldığı yerleri aramayı seçtiyseniz ve bazı kullanımlar bulunduysa bunları görüntüleyebilir ve dosyayı silip silmeyeceğinize karar verebilirsiniz.

  3. Build (Derle) > Clean Project'i (Projeyi Temizle) seçin.

    Silinen drawable vektöre karşılık gelen, otomatik olarak üretilmiş PNG ve XML dosyaları projeden ve Drive'dan kaldırılır.

Drawable vektörler içeren bir uygulama yayınlama

AndroidX tekniğini kullandıysanız veya minimum API düzeyiniz Android 5.0 (API düzeyi 21) ya da daha yüksekse APK'nız, Vector Asset Studio ile eklediğiniz drawable vektörleri içerir. Bu APK'lar, vektörel görüntülerin PNG'ye dönüştürülmesine kıyasla daha küçük olur.

Minimum API düzeyiniz Android 4.4 (API düzeyi 20) veya daha eski bir sürümü içeriyorsa ve projenizde karşılık gelen drawable vektörler ve raster resimler varsa APK dosyalarınızı yayınlamak için iki seçeneğiniz vardır:

  • Hem drawable vektörleri hem de karşılık gelen raster temsillerini içeren bir APK oluşturun. Bu çözüm, uygulanması en kolay olan çözümdür.
  • Farklı API düzeyleri için ayrı APK'lar oluşturun. Android 5.0 (API düzeyi 21) ve sonraki sürümler için APK'ya karşılık gelen raster resimleri eklemediğinizde APK'nın boyutu çok daha küçük olabilir. Daha fazla bilgi için Birden Fazla APK Desteği başlıklı makaleyi inceleyin.

PSD dosyaları için destek ve kısıtlamalar

Vector Asset Studio, tüm PSD dosyası özelliklerini desteklemez. Aşağıdaki listede, desteklenen ve desteklenmeyen PSD özellikleri ile bazı dönüştürme ayrıntıları özetlenmiştir.

Doküman

Desteklenenler:

  • Bitmap, gri tonlama, dizine eklenmiş, RGB, Lab veya CMYK PSD renk modu.
  • 8, 16 veya 32 bit renk derinliği

Dönüşüm ayrıntıları:

  • PSD belgesinin boyutları, drawable vektör ve görüntü alanı boyutları olur.

Desteklenmeyenler:

  • Duotone veya çok kanallı PSD renk modu.

Şekiller

Desteklenenler:

  • Kırpma tabanı başka bir şekilse kırpma maskeleri.
  • Birleştirme/ekleme, kesiştirme, çıkarma ve hariç tutma gibi şekil işlemleri.

Desteklenmeyenler:

  • Photoshop şekilleri tarafından kullanılan çift-tek dolgu kuralı. Android 6.0 (API düzeyi 23) ve önceki sürümlerde, drawable vektörler yalnızca sıfır olmayan dolgu kuralını destekler. Kendiyle kesişen şekillerde bu sınırlama, PSD ile sonuçta elde edilen drawable vektör arasında oluşturma farklılıklarına yol açabilir. Bu sorunu düzeltmek için drawable vektördeki şekle android:fillType="evenOdd" ekleyin. Örneğin:

    <vector xmlns:android="https://schemas.android.com/apk/res/android"
      android:viewportHeight="168"
      android:height="24dp"
      android:viewportWidth="209"
      android:width="24dp">
    
      <path
          android:fillAlpha="1.0"
          android:fillColor="#000000"
          android:fillType="evenOdd"
          android:pathData="M24,58 L24,167 L114,167 L114,66 M64,1 L64,96 L208,96 L208,8 M1,97 L146,139 L172,47"/>
    </vector>

Konturlar ve dolgular

Desteklenenler:

  • Renk, opaklık, genişlik, birleştirme, başlık, tire ve hizalama dahil olmak üzere konturlar.
  • Düz renkli dolgular ve konturlar.
  • RGB, Lab veya CMYK olarak belirtilen kontur ve dolgu renkleri.

Dönüşüm ayrıntıları:

  • Bir kontur kesikli, kırpma tabanı kullanılarak kırpılmış veya merkezden farklı bir hizalama kullanıyorsa Vector Asset Studio, bunu drawable vektörde bir dolgu şekline dönüştürür.

Desteklenmeyenler:

  • Düz renk dışındaki renk dolguları ve konturlar (ör. gradyanlar)

Opaklık

Desteklenenler:

  • Opaklığı 0 olan şekil katmanları.

Dönüşüm ayrıntıları:

  • Vector Asset Studio, dolgu alfa değerini hesaplamak için dolgu opaklığını katman opaklığıyla çarpar.
  • Araç, son dolgu alfa değerini hesaplamak için kırpma tabanının opaklığını (kırpma tabanı varsa) dolgu alfa değeriyle çarpar.
  • Araç, kontur alfa değerini hesaplamak için kontur opaklığını katman opaklığıyla çarpar.
  • Araç, nihai kontur alfa değerini hesaplamak için kırpma tabanının opaklığını (kırpma tabanı varsa) kontur alfa değeriyle çarpar.

Katmanlar

Desteklenenler:

  • Görünür olan herhangi bir şekil katmanı.

Dönüşüm ayrıntıları:

  • Vector Asset Studio, drawable vektör dosyasındaki katmanların adlarını korur.

Desteklenmeyenler:

  • Katman efektleri.
  • Ayar ve metin katmanları.
  • Karışım modları (yoksayılır).

SVG dosyaları için destek ve kısıtlamalar

Vector Asset Studio, tüm SVG dosyası özelliklerini desteklemez. Aşağıdaki bölümde, aracın bir SVG dosyasını VectorDrawable biçimine dönüştürürken desteklenen ve desteklenmeyen özellikler ile ek dönüşüm ayrıntıları özetlenmektedir.

Desteklenen özellikler

VectorDrawable, text hariç Tiny SVG 1.2'nin tüm özelliklerini destekler.

Şekiller

VectorDrawable, SVG yollarını destekler.

Araç, daire, kare ve poligon gibi basit şekilleri yollara dönüştürür.

Dönüşümler

Araç, dönüşüm matrislerini destekler ve bunları doğrudan alt yollara uygular.

Gruplar

Araç; çeviri, ölçeklendirme ve döndürme için grup öğelerini destekler. Gruplar, opaklık özelliğini desteklemez.

Araç, alt yollara grup stilini veya opaklığını da uygular.

Dolgu ve kontur

Yollar, düz renkler veya gradyanlar (doğrusal, dairesel veya açılı) kullanılarak doldurulabilir ve konturlanabilir. Yalnızca ortalanmış konturlar desteklenir. Karışım modları desteklenmez. Kesikli yollar desteklenmez.

Maskeler

Araç, grup başına bir kırpma maskesini destekler.

SVG içe aktarıcı tarafından desteklenmeyen özellikler

Önceki Desteklenen özellikler bölümünde listelenmeyen özellikler desteklenmez. Desteklenmeyen önemli özellikler şunlardır:

  • Filtre efektleri: Gölge, bulanıklaştırma ve renk matrisi gibi efektler desteklenmez.
  • Metin: Metni şekillere dönüştürmek için diğer araçları kullanmanız önerilir.
  • Desen dolguları

Ek kaynaklar

Vektör grafikler hakkında daha fazla bilgi için aşağıdaki ek kaynaklara göz atın:

Belgeler

İçerik görüntüleme