Android Studio, materyal simgeleri eklemenize ve Ölçeklenebilir Vektör Grafiği (SVG) ile Adobe Photoshop Belgesi (PSD) dosyalarını projenize drawable vektör kaynakları olarak içe aktarmanıza yardımcı olan Vector Asset Studio adlı bir araç içerir. Bit eşlemler yerine vektör çizilebilir öğeler kullanmak, aynı dosya farklı ekran yoğunlukları için yeniden boyutlandırıldığında görüntü kalitesinde kayıp yaşanmadığından APK'nızın boyutunu küçültür. Vektör çizilebilir öğeleri desteklemeyen Android'in eski sürümlerinde, Vector Asset Studio, derleme sırasında vektör çizilebilir öğelerinizi her ekran yoğunluğu için farklı bit eşlem 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ı korumak, çeşitli çözünürlüklerdeki birden fazla raster grafiği güncellemekten daha kolay olabilir.
Vektör çizilebilir öğeleri Jetpack Compose ile 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ümlerde vektör çizilebilir öğeler desteklenmez. Minimum API düzeyiniz bu API düzeylerinden birine ayarlanmışsa Vector Asset Studio'yu kullanırken iki seçeneğiniz vardır: Taşınabilir Ağ Grafiği (PNG) dosyaları oluşturma (varsayılan) veya AndroidX'te geriye dönük uyumluluk tekniğini kullanma.
Vector Asset Studio, geriye dönük uyumluluk için drawable vektör öğesinin raster görüntülerini oluşturur. Vektör ve raster çizilebilir öğeler, APK'da birlikte paketlenir. Kotlin kodunda vektör çizilebilir öğeleri Drawable, XML kodunda ise @drawable olarak adlandırabilirsiniz. Uygulamanız çalıştığında, API düzeyine bağlı olarak ilgili vektör veya raster resim otomatik olarak gösterilir.
Yalnızca vektör çizilebilir öğeleri kullanmak istiyorsanız AndroidX 1.0.0 veya daha yeni bir sürümü kullanabilirsiniz. Bu teknik, AndroidX'te açıklandığı gibi, Vector Asset Studio'yu çalıştırmadan önce build.gradle dosyanızda değişiklik yapılmasını gerektirir. AndroidX'teki
VectorDrawableCompat sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde
VectorDrawable desteği sunmanıza olanak tanır.
Desteklenen vektör grafiği türleri
Google Materyal Tasarım spesifikasyonu, Android uygulamalarınızda kullanabileceğiniz Materyal simgeleri sağlar. Vector Asset Studio, Material 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ı da içe aktarmanıza olanak tanır. SVG, Dünya Çapında Ağ Birliği'nin (W3C) XML tabanlı açık 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. SVG veya PSD dosyası belirttiğinizde Vector Asset Studio, grafik kodunun desteklenip desteklenmediği hakkında anında geri bildirim verir. Dosyayı, VectorDrawable kodu içeren bir XML dosyasına dönüştürür. Hata alırsanız vektör çizilebilir öğenizin beklendiği gibi göründüğünü doğrulamanız gerekir. İzin verilen PSD özellikleri hakkında daha fazla bilgi için PSD dosyalarıyla ilgili destek ve kısıtlamalar başlıklı makaleyi inceleyin.
Android 5.0 (API düzeyi 21) ve sonraki sürümlerde, AnimatedVectorDrawable sınıfının özelliklerini canlandırmak için VectorDrawable sınıfını kullanabilirsiniz. AndroidX ile, Android 3.0 (API düzeyi 11) ve sonraki sürümlerde VectorDrawable sınıfını canlandırmak için AnimatedVectorDrawableCompat sınıfını kullanabilirsiniz. Daha fazla bilgi için Oluşturma'da animasyonlu vektör resimler başlıklı makaleyi inceleyin.
SVG ve PSD dosyalarıyla ilgili dikkat edilmesi gereken noktalar
Vektör drawable'lar basit simgeler için uygundur. Material simgeleri, uygulamalarda vektörel çizilebilir öğeler olarak iyi performans gösteren resim türleri için iyi örnekler sunar. Buna karşılık, birçok uygulama başlatma simgesi çok fazla ayrıntı içerdiğinden raster resim olarak daha iyi performans gösterir.
Bir vektör çizilebilir öğesinin ilk yüklenmesi, karşılık gelen raster resimden daha fazla CPU döngüsü gerektirebilir. Sonrasında, bellek kullanımı ve performans iki cihaz arasında benzer olur. Vektörel görüntüleri en fazla 200 x 200 dp ile sınırlamanızı öneririz. Aksi takdirde, çizim çok uzun sürebilir.
Vektör çizilebilir öğeler bir veya daha fazla rengi desteklese de çoğu durumda simgeleri siyah renkte (android:fillColor="#FF000000") renklendirmek mantıklıdır. Bu yaklaşımı kullanarak, bir düzene yerleştirdiğiniz vektör çizilebilir öğeye renk tonu ekleyebilirsiniz. Böylece simge rengi, renk tonu rengine dönüşür. Simge rengi siyah değilse bunun yerine renk tonuyla karışabilir.
Geriye dönük uyumlu drawable vektör çö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 | İşaret oluşturma | Uygulama kodu |
|---|---|---|---|---|---|
| PNG üretimi | Vektör ve raster | Alt küme desteklenir | SVG: Gradle için Android eklentisi 1.5.0 veya daha yeni bir sürüm PSD: Android Studio 2.2 veya sonraki sürümler |
Varsayılan | Çeşitli kodlama teknikleri desteklenir. |
| AndroidX 1.0 veya sonraki sürümler | Vektör | Tam destek | Gradle 3.2 veya sonraki sürümleri için Android eklentisi | Destek Kitaplığı ifadeleri gerekli | Desteklenen kodlama tekniklerinin alt kümesi |
Vektör çizilebilir öğeler kullanmak daha küçük bir APK oluşturabilir ancak vektör çizilebilir öğelerin ilk yüklenmesi daha uzun sürebilir.
PNG oluşturma
Android 5.0 (API düzeyi 21) ve sonraki sürümlerde vektör çizilebilir öğe desteği sağlanır. Uygulamanızın minimum API düzeyi daha düşükse Vector Asset Studio, vektör çizilebilir dosyayı projenize ekler. Ayrıca, derleme sırasında Gradle, çeşitli çözünürlüklerde PNG raster resimler oluşturur. Gradle, build.gradle dosyasında Alan Özel 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, VectorDrawable öğelerinin tümünü 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:widthandroid:heightandroid:viewportWidthandroid:viewportHeightandroid:alpha
<group>
android:rotationandroid:pivotXandroid:pivotYandroid:scaleXandroid:scaleYandroid:translateXandroid:translateY
<path>
android:pathDataandroid:fillColorandroid:strokeColorandroid:strokeWidthandroid:strokeAlphaandroid:fillAlphaandroid:strokeLineCapandroid:strokeLineJoinandroid:strokeMiterLimit
En iyi uygulama olmasa da Vector Asset Studio'nun oluşturduğu XML kodunu değiştirebilirsiniz. Geçerli ve statik oldukları sürece, kodda değerlerin değiştirilmesi herhangi bir soruna neden olmaz. XML öğeleri eklemek istiyorsanız minimum API seviyenize göre desteklendiklerinden emin olmanız gerekir.
AndroidX
Bu teknik için AndroidX 1.0 veya sonraki bir sürüm ve Gradle için Android eklentisinin 3.2 veya sonraki bir sürümü gerekir. Ayrıca yalnızca vektör çizilebilir öğeler kullanılır. AndroidX'teki VectorDrawableCompat
sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde VectorDrawable'ı desteklemenizi sağlar.
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:
Android Studio'da bir Android uygulaması projesi açın.
Proje penceresinde Android görünümü'nü seçin.
res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi'ni seçin.
Diğer bazı proje görünümlerinde ve klasörlerde de bu menü öğesi bulunur.
Vector Asset Studio görünür.
Şekil 1. Vector Asset Studio
Bunun yerine Need Newer Android Plugin for Gradle (Gradle için daha yeni bir Android eklentisi gerekiyor) iletişim kutusu görünürse Gradle sürümünüzü aşağıdaki şekilde düzeltin:
Dosya > Proje Yapısı'nı seçin.
Proje Yapısı iletişim kutusunda Proje'yi seçin.
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ümle değiştirip OK'u (Tamam) tıklayın.
Gradle, projeyi senkronize eder.
Proje penceresinin Android görünümünde, res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi'ni seçin.
Vector Asset Studio görünür.
Vektör Grafiği İçe Aktarma ile devam edin.
Vektörel grafik içe aktarma
Vector Asset Studio, vektör grafik dosyasını uygulama projenize aktarmanıza yardımcı olur. Aşağıdaki işlemlerden birini uygulayın:
Materyal simgesi ekleme
Vector Asset Studio'yu açtıktan sonra aşağıdaki adımları uygulayarak Material simgesi ekleyebilirsiniz:
Vector Asset Studio'da Clip art'ı seçin.
Klip resmi alanında düğmeyi tıklayın.
Simge Seç iletişim kutusu görünür. Menüden bir simge kategorisi seçerek veya Şekil 2'de gösterildiği gibi arama alanına yazarak hangi simgelerin görünür olduğunu filtreleyebilirsiniz.
Şekil 2. Vector Asset Studio'da Material Icons'ı filtreleme.
Bir Material simgesi seçip Tamam'ı tıklayın. Simge, Vector Drawable Preview'da görünür.
İsteğe bağlı olarak kaynak adını, boyutunu, opaklığını ve sağdan sola (RTL) yansıtma ayarını değiştirin:
Ad: Varsayılan adı kullanmak istemiyorsanız yeni bir ad yazın. Vektör Öğe Stüdyosu, kaynak adı projede zaten varsa 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örünür.
Varsayılan değer 24 x 24 dp'dir ve Materyal Tasarım spesifikasyonunda tanımlanır. 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ştirin: Düzen sağdan sola olduğunda soldan sağa yerine yansıtılmış bir görüntü göstermek istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola okunur. Bu durumda bir ok simgeniz varsa bunun ayna görüntüsünü göstermek isteyebilirsiniz. Daha eski bir projeyle çalışıyorsanız
android:supportsRtl="true"öğesini uygulama manifestinize de eklemeniz gerekebilir. Otomatik yansıtma, Android 5.0 (API düzeyi 21) ve sonraki sürümlerde ve AndroidX ile desteklenir.
İleri'yi tıklayın.
İsteğe bağlı olarak modülü ve kaynak dizinini değiştirin:
- Res Directory: drawable vektör öğesini eklemek istediğiniz kaynak grubu kümesini seçin:
src/main/res,src/debug/res,src/release/resveya kullanıcı tanımlı bir kaynak grubu kümesi. Ana kaynak grubu, hata ayıklama ve yayın 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 derlemenin bir sürümü için geçerli olur. Hata ayıklama kaynağı grubu yalnızca hata ayıklama için kullanılır. Yeni bir kaynak grubu tanımlamak için Dosya > Proje Yapısı > app > Build Types'ı (Derleme Türleri) seçin. Örneğin, bir beta kaynak grubu tanımlayabilir ve sağ alt köşesinde "BETA" metnini içeren bir simge sürümü oluşturabilirsiniz. Daha fazla bilgi için Derleme Varyantlarını Yapılandırma başlıklı makaleye bakın.
Çıkış Dizinleri alanında, drawable vektör ve görüneceği dizin gösterilir.
- Res Directory: drawable vektör öğesini eklemek istediğiniz kaynak grubu kümesini seçin:
Son'u tıklayın.
Vector Asset Studio, drawable vektör öğesini tanımlayan bir XML dosyasını
app/src/main/res/drawable/klasöründeki projeye ekler. Proje penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.Projeyi oluşturun.
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. Proje penceresinin Proje Dosyaları görünümünde, oluşturulan PNG ve XML dosyalarını
app/build/generated/res/pngs/debug/klasöründe görüntüleyebilirsiniz.Oluşturulan bu raster dosyaları 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, dosyaları korumanız gerekmez.
SVG veya PSD dosyasını içe aktarma
Vector Asset Studio'yu açtıktan sonra SVG veya PSD dosyasını aşağıdaki gibi içe aktarabilirsiniz:
Vector Asset Studio'da Yerel dosya'yı 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.
… simgesini tıklayarak bir resim dosyası belirtin .
Resim, Vector Drawable Preview'da (Çizilebilir Vektör Önizlemesi) 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 görünür.
Şekil 3. Vector Asset Studio'da bazı hatalar gösteriliyor.
Hata görürseniz içe aktarılan vektör çizilebilir öğenin düzgün şekilde oluşturulduğundan emin olmanız gerekir. Hataları görüntülemek için listede ilerleyin.
Desteklenen öğelerin listesi için Vector Drawable 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ıyla İlgili Destek ve Kısıtlamalar başlıklı makaleyi inceleyin.
İsteğe bağlı olarak kaynak adını, boyutunu, opaklığını ve sağdan sola (RTL) yansıtma ayarını değiştirin:
Ad: Varsayılan adı kullanmak istemiyorsanız yeni bir ad yazın. Vektör Öğe Stüdyosu, kaynak adı projede zaten varsa 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çtikten sonra 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 değer 24 x 24 dp'dir ve Materyal Tasarım spesifikasyonunda tanımlanır.
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ştirin: Düzen sağdan sola olduğunda soldan sağa yerine yansıtılmış bir görüntü göstermek istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola okunur. Bu durumda, ok simgeniz varsa bunun yansıtılmış bir 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.
İleri'yi tıklayın.
İsteğe bağlı olarak kaynak dizinini değiştirin:
- Res Directory (Res Dizini): drawable vektör öğesini eklemek istediğiniz kaynak grubu kümesini seçin:
src/main/res,src/debug/res,src/release/resveya kullanıcı tanımlı bir kaynak grubu kümesi. Ana kaynak grubu, hata ayıklama ve yayın 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 derlemenin bir sürümü için geçerli olur. Hata ayıklama kaynağı 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 > Build Types'ı (Derleme Türleri) seçin. Örneğin, bir beta kaynak grubu tanımlayabilir ve sağ alt köşesinde "BETA" metnini içeren bir simge sürümü oluşturabilirsiniz. Daha fazla bilgi için Derleme Varyantlarını Yapılandırma başlıklı makaleye bakın.
Çıkış Dizinleri alanında, drawable vektör ve görüneceği dizin gösterilir.
- Res Directory (Res Dizini): drawable vektör öğesini eklemek istediğiniz kaynak grubu kümesini seçin:
Son'u tıklayın.
Vector Asset Studio, drawable vektör öğesini tanımlayan bir XML dosyasını
app/src/main/res/drawable/klasöründeki projeye ekler. Proje penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.Projeyi oluşturun.
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. Proje penceresinin Proje Dosyaları görünümünde, oluşturulan PNG ve XML dosyalarını
app/build/generated/res/pngs/debug/klasöründe görüntüleyebilirsiniz.Oluşturulan bu raster dosyaları 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, dosyaları korumanız gerekmez.
Jetpack Compose'da vektör öğesine referans verme
Vektör Öğe Stüdyosu'nu 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'ı kullanmaktır.
Icon composable'ı, küçük ve tek renkli öğeleri görüntülemenin standart yoludur. Material Design 3 temalarına göre dinamik renk tonu uygulama ve içerik açıklamaları aracılığıyla otomatik erişilebilirlik gibi Materyal Tasarım ilkeleri için yerleşik destek sunar.
Birleştirilebilir öğeye XML vektör öğeleri sağlamak için painterResource API'yi kullanı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'ını kullanın:
Image( painter = painterResource(id = R.drawable.ic_complex_vector), contentDescription = null // Decorative element )
Görüntüleri ö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örleri canlandırmak için Compose'da animasyonlu vektör resimler 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üresinde oluşturulan ilgili XML kodunu değiştiremezsiniz. Ancak bu yöntemi önermiyoruz.
Vector Asset Studio, PNG oluşturma tekniğini kullanırken drawable vektör ile PNG'lerin eşleştiğinden ve manifestin uygun kodu içerdiğinden emin olur. Android 4.4 (API düzeyi 20) ve önceki sürümlerde desteklenmeyen bir kod eklerseniz vektör ve PNG resimleriniz farklı görünebilir. Ayrıca manifestin, değişikliklerinizi destekleyecek kodu içerdiğinden de emin olmanız gerekir.
AndroidX tekniğini kullanmadığınızda vektör XML dosyasını değiştirmek için:
Proje penceresinde, drawable klasöründeki oluşturulan vektör XML dosyasını çift tıklayın.
XML dosyası, düzenleyici ve Önizleme pencerelerinde görünür.
Şekil 4. Kod düzenleyicide ve önizleme penceresinde gösterilen bir vektör XML dosyası.
XML kodunu, minimum API düzeyi tarafından desteklenenlere göre düzenleyin:
Android 5.0 (API düzeyi 21) ve sonraki sürümler: Vector Asset Studio,
DrawableveVectorDrawableöğelerinin tümünü destekler. XML öğeleri ekleyebilir ve değerleri değiştirebilirsiniz. Jetpack Compose'da, daha fazla özelleştirme için vektör çizilebilir öğesiniImageVectoriçine yükleyebilirsiniz.Android 4.4 (API düzeyi 20) ve önceki sürümler: Vector Asset Studio,
Drawableöğelerinin tümünü veVectorDrawableöğelerinin bir alt kümesini destekler. Liste için Vector Drawable Geriye Dönük Uyumluluk Çözümleri'ne bakın. Oluşturulan koddaki değerleri değiştirebilir ve desteklenen XML öğeleri ekleyebilirsiniz.
Projeyi oluşturun ve drawable vektör öğesinin ve ilgili raster resimlerin aynı göründüğünü kontrol edin.
Oluşturulan PNG'lerin, farklı oluşturma motorları ve derlemeden önce drawable vektör öğede yapılan değişiklikler nedeniyle Önizleme penceresinde uygulamaya kıyasla farklı şekilde 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 her zaman vektör çizilebilir öğeyle eşleştiğini kontrol etmeniz gerekir. Bunu yapmak için Proje penceresinin Proje Dosyaları görünümünde PNG'yi çift tıklayabilirsiniz. Kodunuz çizilebilir öğeyi referans aldığında, Kod Düzenleyici'nin sol kenar boşluğunda da PNG resmi gösterilir (Şekil 5'te gösterildiği gibi).
Şekil 5. Kod Düzenleyici'nin sol kenar boşluğunda gösterilen PNG resmi.
Bir projeden drawable vektör silme
Bir vektör çizilebilir öğesini projeden kaldırmak için:
Project (Proje) penceresinde, oluşturulan vektör XML dosyasını seçip Delete (Sil) tuşuna basarak silin (veya Edit > Delete'i seçin).
Güvenli Silme iletişim kutusu gösterilir.
İsteğe bağlı olarak, dosyanın projede nerede kullanıldığını bulmak için seçenekleri belirleyin ve Tamam'ı tıklayın.
Android Studio, dosyayı projeden ve sürücüden siler. Ancak, dosyanın kullanıldığı yerleri projede arama seçeneğini belirlediyseniz ve bazı kullanımlar bulunursa bunları görüntüleyip dosyayı silip silmeyeceğinize karar verebilirsiniz.
Build (Derle) > Clean Project'i (Projeyi Temizle) seçin.
Silinen vektör çizilebilir öğesine karşılık gelen otomatik olarak oluşturulmuş PNG ve XML dosyaları projeden ve sürücüden kaldırılır.
Vektör çizilebilir öğeler 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 vektör çizilebilir öğeleri içerir. Bu APK'lar, vektör resimler PNG'ye dönüştürülseydi daha küçük olurdu.
Minimum API düzeyiniz Android 4.4 (API düzeyi 20) veya önceki sürümleri içeriyorsa ve projenizde buna karşılık gelen vektör çizimleri ve raster resimler varsa APK dosyalarınızı sunmak için iki seçeneğiniz vardır:
- Hem vektör çizilebilir öğeleri hem de karşılık gelen raster gösterimleri içeren bir APK oluşturun. Bu çözümün uygulanması en kolaydı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 ilgili raster resimleri eklemediğinizde APK'nın boyutu çok daha küçük olabilir. Daha fazla bilgi için Birden Fazla APK Desteği bölümüne bakın.
PSD dosyalarıyla ilgili 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ı özetlenmektedir.
Doküman
Desteklenenler:
- Bitmap, gri tonlama, dizine alınmış, RGB, Lab veya CMYK renk modunda bir PSD.
- 8, 16 veya 32 bit renk derinliği.
Dönüşüm ayrıntıları:
- PSD belgesinin boyutları, drawable vektör öğesinin ve görüntü alanının boyutları olur.
Desteklenmeyenler:
- İki renkli veya çok kanallı bir PSD renk modu.
Şekiller
Desteklenenler:
- Kırpma maskeleri (kırpma tabanı başka bir şekilse)
- Birleştirme/ekleme, kesişim, çıkarma ve hariç tutma gibi şekil işlemleri.
Desteklenmeyenler:
Photoshop şekillerinde kullanılan tek-çift doldurma kuralı. Android 6.0 (API düzeyi 23) ve önceki sürümlerde vektör çizilebilir öğeler yalnızca sıfır olmayan dolgu kuralını destekler. Kendiyle kesişen şekillerde bu sınırlama, PSD ile sonuçtaki vektör çizilebilir öğe arasında oluşturma farklılıklarına yol açabilir. Bu sorunu düzeltmek için drawable vektör öğesindeki ş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, uç, tireler ve hizalama dahil olmak üzere konturlar.
- Düz renk dolgular ve fırçalar.
- RGB, Lab veya CMYK olarak belirtilen fırça ve dolgu renkleri.
Dönüşüm ayrıntıları:
- Bir kontur kesikliyse, kırpma tabanı kullanılarak kırpılmışsa veya ortadan farklı bir hizalama kullanıyorsa Vector Asset Studio, bunu drawable vektör öğesinde dolgu şekline dönüştürür.
Desteklenmeyenler:
- Düz renk dışında dolgular ve fırçalar (ör. renk geçişleri).
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 (kırpma tabanı varsa) opaklığını dolgu alfa değeriyle çarpar.
- Araç, kontur alfasını hesaplamak için kontur opaklığını katman opaklığıyla çarpar.
- Araç, son kontur alfa değerini hesaplamak için kırpma tabanının (kırpma tabanı varsa) opaklığını kontur alfa değeriyle çarpar.
Katmanlar
Desteklenenler:
- Tüm görünür şekil katmanları.
Dönüşüm ayrıntıları:
- Vector Asset Studio, vektör çizilebilir dosyasındaki katmanların adlarını korur.
Desteklenmeyenler:
- Katman efektleri
- Düzenleme ve metin katmanları.
- Karıştırma modları (yoksayılır).
SVG dosyalarıyla ilgili destek ve kısıtlamalar
Vector Asset Studio, tüm SVG dosyası özelliklerini desteklemez. Aşağıdaki bölümde, araç bir SVG dosyasını VectorDrawable'ye dönüştürürken desteklenen ve desteklenmeyen özellikler ile ilgili ek dönüştürme ayrıntıları özetlenmektedir.
Desteklenen özellikler
VectorDrawable, metin hariç Tiny SVG 1.2'deki tüm özellikleri destekler.
Şekiller
VectorDrawable SVG yollarını destekler.
Araç, daireler, kareler ve poligonlar gibi temel şekilleri yollara dönüştürür.
Dönüşümler
Araç, dönüştürme 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ç, grup stili veya opaklığı alt yollara da uygular.
Dolgu ve konturlar
Yollar, düz renkler veya renk geçişleri (doğrusal, radyal ya da açısal) kullanılarak doldurulabilir ve fırçayla boyanabilir. Yalnızca ortalanmış konturlar desteklenir. Karıştırma 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 tüm özellikler desteklenmez. Desteklenmeyen önemli özellikler arasında şunlar yer alır:
- Filtre efektleri: Gölge, bulanıklaştırma ve renk matrisi gibi efektler desteklenmez.
- Metin: Diğer araçları kullanarak metni şekillere dönüştürmeniz önerilir.
- Desen dolguları
Ek kaynaklar
Vektör grafikleri hakkında daha fazla bilgi için aşağıdaki ek kaynaklara bakın: