Android Studio, malzeme simgeleri eklemenize ve Ölçeklenebilir Vektör Grafiği (SVG) ile Adobe Photoshop Belgesi (PSD) dosyalarını projenize vektör çekilebilir kaynaklar olarak içe aktarmanıza yardımcı olan Vector Asset Studio adlı bir araç içerir. Bit eşlemler yerine vektör çekilebilir öğelerinin kullanılması, APK'nızın boyutunu küçültür. Çünkü aynı dosya, resim kalitesinden ödün vermeden farklı ekran yoğunlukları için yeniden boyutlandırılabilir. Vektör çekilebilirlerini desteklemeyen eski Android sürümleri için Vector Asset Studio, oluşturma zamanında vektör çekilebilir öğ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 görüntüyü açıklayan XML dosyası olarak bir vektör grafiği ekler. Tek bir XML dosyası tutmak, çeşitli çözünürlüklerdeki birden fazla kafes grafiğini güncellemekten daha kolay olabilir.
Android 4.4 (API düzeyi 20) ve önceki sürümler, vektör çekilebilirlerini desteklemez. 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 Destek Kitaplığı'nı kullanma.
Geriye dönük uyumluluk için Vector Asset Studio, çekilebilir vektörün karo resimlerini oluşturur. Vektör ve kafes çekilebilir öğeleri APK'da birlikte paketlenir. Vektör çekilebilirlerine Java kodunda Drawable
veya XML kodunda @drawable
ifade edebilirsiniz. Uygulamanız çalıştığında, API düzeyine bağlı olarak ilgili vektör veya kafes görüntüsü otomatik olarak gösterilir.
Yalnızca vektör çekilebilir kaynaklarını kullanmak istiyorsanız Android Destek Kitaplığı 23.2 veya üstünü kullanabilirsiniz. Bu teknik, Vector Asset Studio'yu çalıştırmadan önce Destek Kitaplığı Geriye Dönük Uyumluluk konusunda açıklandığı gibi build.gradle
dosyanızda değişiklik yapılmasını gerektirir.
Destek Kitaplığı'ndaki VectorDrawableCompat
sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde VectorDrawable
öğesini desteklemenize olanak tanır.
Desteklenen vektör grafik türleri
Google Materyal Tasarım spesifikasyonu, Android uygulamalarınızda kullanabileceğiniz malzeme simgeleri sağlar. Vector Asset Studio, malzeme simgelerini seçmenize, içe aktarmanıza ve boyutlandırmanızın yanı sıra 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, World Wide Web Consortium'un (W3C) XML tabanlı bir 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.
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. Hatalarla karşılaşırsanız, vektör çiziminizin gerektiği 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 sayfasına bakın.
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. Destek Kitaplığı sayesinde, Android 3.0 (API düzeyi 11) ve sonraki sürümler için VectorDrawable
sınıfını canlandırmak üzere AnimatedVectorDrawableCompat
sınıfını kullanabilirsiniz.
Daha fazla bilgi için Vektör çekilebilirlerini canlandırma bölümüne bakın.
SVG ve PSD dosyalarıyla ilgili dikkat edilmesi gereken noktalar
Çizim vektörü, basit simgeler için uygundur. Malzeme simgeleri, bir uygulamada ve vektör çekilebilir öğeler için iyi sonuç veren resim örnekleri sağlar. Buna karşılık, birçok uygulama başlatma simgesi birçok ayrıntıya sahip olduğundan kafes resimler olarak daha iyi çalışırlar.
Çekilebilir bir vektörün ilk yüklemesi, karşılık gelen kafes görüntüsünden daha fazla CPU döngüsüne mal olabilir. Daha sonra ikisi arasında bellek kullanımı ve performans benzer olur. Vektörel resimleri en fazla 200 x 200 dp boyutunda kullanmanızı öneririz. Aksi takdirde, çizim çok uzun sürebilir.
Vektör çizimleri bir veya daha fazla rengi desteklese de, çoğu durumda simgeleri siyah (android:fillColor="#FF000000"
) renklendirmek anlamlıdır. Bu yaklaşımı kullanarak, bir düzene yerleştirdiğiniz çizilebilir vektöre bir tonlama ekleyebilirsiniz ve simge rengi ton rengine değişir. Simge rengi siyah değilse simge rengi bunun yerine ton rengiyle karışabilir.
Vektör çekilebilir 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'da çizilebilirler | VectorDrawable XML öğeleri | Sürüm | Oluşturma işareti | Uygulama kodu |
---|---|---|---|---|---|
PNG oluşturma | Vektör ve kafes | Alt küme destekleniyor | SVG: Gradle için Android eklentisi 1.5.0 veya sonraki sürümler PSD: Android Studio 2.2 veya üstü |
Varsayılan | Çeşitli kodlama teknikleri desteklenir |
Destek Kitaplığı 23.2 veya sonraki sürümler | Vektör | Tam destek | Gradle 2.0 veya üstü için Android eklentisi | Destek Kitaplığı bildirimleri gerekli | Desteklenen kodlama teknikleri alt kümesi |
Vektör çekilebilir öğelerinin kullanılması daha küçük bir APK oluşturabilir ancak vektör çekilebilir öğelerinin ilk kez yüklenmesi daha uzun sürebilir.
PNG oluşturma
Android 5.0 (API düzeyi 21) ve sonraki sürümler vektör çekilebilirliği desteği sağlar. Uygulamanızın minimum API düzeyi daha düşükse Vector Asset Studio, projenize çekilebilir vektör dosyası ekler. Ayrıca, derleme sırasında Gradle, çeşitli çözünürlüklerde PNG kafes resimleri oluşturur. Gradle, bir build.gradle
dosyasında Alana Özgü Dil (DSL) generateDensities özelliği tarafından belirtilen PNG yoğunluklarını oluşturur.
Android 5.0 (API düzeyi 21) ve sonraki sürümler için Vector Asset Studio tüm VectorDrawable
öğelerini destekler. Vector Asset Studio, Android 4.4 (API düzeyi 20) ve önceki sürümlerle geriye dönük uyumluluk için 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 uygulama değildir. Koddaki değerlerin değiştirilmesi, geçerli ve statik oldukları sürece herhangi bir soruna neden olmamalıdır. XML öğeleri eklemek istiyorsanız bunların minimum API düzeyinize göre desteklendiğinden emin olmanız gerekir.
Destek Kitaplığı
Bu teknik, Android Support Library 23.2 veya sonraki sürümleri ile Gradle 2.0 veya sonraki sürümleri için Android Eklentisini gerektirir ve yalnızca vektör çekilebilir kaynaklarını kullanır. Destek Kitaplığı'ndaki VectorDrawableCompat
sınıfı, Android 2.1 (API düzeyi 7) ve sonraki sürümlerde VectorDrawable
öğesini desteklemenize olanak tanır.
Vektör Asset Studio'yu kullanmadan önce build.gradle
dosyanıza bir ifade eklemeniz gerekir:
Modern
android { defaultConfig { vectorDrawables.useSupportLibrary = true } } dependencies { implementation 'com.android.support:appcompat-v7:23.2.0' }
Kotlin
android { defaultConfig { vectorDrawables.useSupportLibrary = true } } dependencies { implementation("com.android.support:appcompat-v7:23.2.0") }
Destek Kitaplığı ile uyumlu kodlama teknikleri de kullanmanız gerekir. Örneğin, vektör çekilebilirleri için android:src
özelliği yerine app:srcCompat
özelliğini kullanabilirsiniz. Daha fazla bilgi için Android Destek Kitaplığı 23.2 bölümüne bakın.
Vector Asset Studio çalıştırılıyor
Vector Asset Studio'yu başlatmak için:
- Android Studio'da bir Android uygulama 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.
- Bunun yerine need Newer Android Plugin for Gradle iletişim kutusu görüntülenirse 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 Plugin sürümünü 1.5.0 veya daha yeni bir sürüm olarak değiştirin ve Tamam'ı tıklayın.
- Proje penceresinin Android görünümünde res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi'ni seçin.
- Vektör Grafiği İçe Aktarma ile devam edin.
Bu menü öğesi diğer bazı proje görünümlerinde ve klasörlerde de bulunur.
Vector Asset Studio görünür.
Gradle projeyi senkronize eder.
Vector Asset Studio görünür.
Vektör grafiğini içe aktarma
Vector Asset Studio, uygulama projenize bir 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 gibi bir malzeme simgesi ekleyebilirsiniz:
- Vector Asset Studio'da Malzeme Simgesi'ni seçin.
- Simge alanındaki düğmeyi tıklayın.
Simge Seçin iletişim kutusu görünür. Soldaki listeden bir simge kategorisi seçerek veya Şekil 2'de gösterildiği gibi arama alanına yazarak hangi simgelerin görüneceğini filtreleyebilirsiniz.
- İ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. Vector Asset Studio, projede zaten kaynak adı yer alıyorsa 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, yaptığınız değişiklik önizleme alanında görünür.
- Saydamlık - Resmin opaklığını ayarlamak için kaydırıcıyı kullanın. Değişiklik, önizleme alanında görünür.
- Sağdan sola düzeni için otomatik yansıtmayı etkinleştir - Düzen soldan sağa değil, sağdan sola doğru yansıtıldığında ayna görüntüsünün görüntülenmesini istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola doğru okunur; bir ok simgeniz varsa bu durumda onun ayna görüntüsünü görüntülemek isteyebilirsiniz. Eski bir projeyle çalışıyorsanız
android:supportsRtl="true"
öğesini uygulama manifestinize de eklemeniz gerekebileceğini unutmayın. Otomatik yansıtma, Android 5.0 (API düzeyi 21) ve üzeri sürümlerde ve Destek Kitaplığı ile desteklenir.
Varsayılan değer 24 x 24 dp'dir ve malzeme tasarımı spesifikasyonunda tanımlanmıştır. Varsayılan ayara dönmek için onay kutusunun işaretini kaldırın.
- İleri'yi tıklayın.
- İsteğe bağlı olarak modülü ve kaynak dizinini değiştirin:
- Res Directory - Çekilebilir vektörü eklemek istediğiniz kaynak kaynak kümesini seçin:
src/main/res
,src/debug/res
,src/release/res
veya kullanıcı tanımlı bir kaynak kümesi. Ana kaynak grubu, hata ayıklama ve sürüm yayınlama dahil olmak üzere tüm derleme varyantları için geçerlidir. Hata ayıklama ve yayın kaynağı grupları, ana kaynak grubunu geçersiz kılar ve derlemenin bir sürümüne uygulanır. Hata ayıklama kaynağı grubu yalnızca hata ayıklama amaçlıdı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öşede "BETA" metnini içeren bir simgenin sürümünü oluşturabilirsiniz. Daha fazla bilgi için Derleme Varyantlarını Yapılandırma bölümüne bakın. - Son'u tıklayın.
- Projeyi oluşturun.
Bir malzeme simgesi seçin ve Tamam'ı tıklayın. Simge, Vektör Çekilebilir Önizlemesi'nde görünür.
Çıkış Dizinleri alanında, çizilebilir vektörü ve görüneceği dizin görüntülenir.
Vector Asset Studio, app/src/main/res/drawable/
klasöründeki projeye çizilebilen vektörü tanımlayan bir XML dosyası
ekler. Proje penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.
Minimum API düzeyi, Android 4.4 (API düzeyi 20) veya önceki bir sürümse ve Destek Kitaplığı 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 kafes dosyalarını düzenlememeniz, bunun yerine vektör XML dosyasıyla çalışmanız gerekir. Derleme sistemi, kafes dosyalarını gerektiğinde otomatik olarak yeniden oluşturur. Böylece bu dosyaları korumanız gerekmez.
SVG veya PSD dosyasını içe aktarma
Vector Asset Studio'yu açtıktan sonra aşağıdaki şekilde bir SVG veya PSD dosyasını içe aktarabilirsiniz:
- Vector Asset Studio'da Yerel dosya'yı seçin.
- ... öğesini tıklayarak bir Resim dosyası belirleyin.
- İ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. Vector Asset Studio, projede zaten mevcut olan kaynak adı 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çiminizden sonra boyut, resmin boyutuna göre 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 malzeme tasarımı spesifikasyonunda tanımlanmıştır.
- Saydamlık - Resmin opaklığını ayarlamak için kaydırıcıyı kullanın. Değişiklik, önizleme alanında görünür.
- Sağdan sola düzeni için otomatik yansıtmayı etkinleştir - Düzen soldan sağa değil, sağdan sola doğru yansıtıldığında ayna görüntüsünün görüntülenmesini istiyorsanız bu seçeneği belirleyin. Örneğin, bazı diller sağdan sola doğru okunur; bir ok simgeniz varsa bu durumda onun ayna görüntüsünü görüntülemek isteyebilirsiniz. Eski bir projeyle çalışıyorsanız
android:supportsRtl="true"
öğesini uygulama manifestinize eklemeniz gerekebileceğini unutmayın. Otomatik yansıtma, Android 5.0 (API düzeyi 21) ve sonraki sürümler ile Destek Kitaplığı tarafından desteklenir. - İleri'yi tıklayın.
- İsteğe bağlı olarak kaynak dizinini değiştirin:
- Res Directory - Çekilebilir vektörü eklemek istediğiniz kaynak kaynak kümesini seçin:
src/main/res
,src/debug/res
,src/release/res
veya kullanıcı tanımlı bir kaynak kümesi. Ana kaynak grubu, hata ayıklama ve sürüm yayınlama dahil olmak üzere tüm derleme varyantları için geçerlidir. Hata ayıklama ve yayın kaynağı grupları, ana kaynak grubunu geçersiz kılar ve derlemenin bir sürümüne uygulanır. Hata ayıklama kaynağı grubu yalnızca hata ayıklama amaçlıdı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öşede "BETA" metnini içeren bir simgenin sürümünü oluşturabilirsiniz. Daha fazla bilgi için Derleme Varyantlarını Yapılandırma bölümüne bakın. - Son'u tıklayın.
- Projeyi oluşturun.
Dosya, yerel bir sürücüde olmalıdır. Örneğin, dosya ağ üzerinde bulunuyorsa önce yerel bir sürücüye indirmeniz gerekir.
Resim, Vektör Çekilebilir Önizlemesi'nde görünür.
SVG veya PSD dosyası desteklenmeyen özellikler içeriyorsa Vector Asset Studio'nun alt kısmında Şekil 3'te gösterildiği gibi bir hata görünür.
Hata görürseniz içe aktarılan vektör çekilebilir öğesinin düzgün bir şekilde oluşturulduğundan emin olmanız gerekir. Hataları görüntülemek için listeyi kaydırın.
Desteklenen öğelerin listesi için Vektör Çekilebilir Geriye Dönük Uyumluluk Çözümleri bölümüne bakın. İzin verilen PSD dosyaları hakkında daha fazla bilgi için PSD Dosyaları için Destek ve Kısıtlamalar bölümüne bakın.
Çıkış Dizinleri alanında, çizilebilir vektörü ve görüneceği dizin görüntülenir.
Vector Asset Studio, app/src/main/res/drawable/
klasöründeki projeye çizilebilen vektörü tanımlayan bir XML dosyası
ekler. Proje penceresinin Android görünümünde, oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.
Minimum API düzeyi, Android 4.4 (API düzeyi 20) veya önceki bir sürümse ve Destek Kitaplığı 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 kafes dosyalarını düzenlememeniz, bunun yerine vektör XML dosyasıyla çalışmanız gerekir. Derleme sistemi, kafes dosyalarını gerektiğinde otomatik olarak yeniden oluşturur. Böylece bu dosyaları korumanız gerekmez.
Bir düzene çizilebilir bir vektör ekleme
Bir düzen dosyasında, simgeyle ilgili herhangi bir widget'ı (ör. ImageButton
, ImageView
vb.) bir vektör çekilebilir dosyasını işaret edecek şekilde ayarlayabilirsiniz. Örneğin, aşağıdaki düzende bir düğme üzerinde çizilebilir bir vektör gösterilmektedir:
Bir widget üzerinde çizilebilir bir vektörü şekilde gösterildiği gibi görüntülemek için:
- Bir proje açın ve bir vektör çekilebilir dosyasını içe aktarın.
- Proje penceresinin Android görünümünde
content_main.xml
gibi bir düzen XML dosyasını çift tıklayın. - Düzen Düzenleyici'yi görüntülemek için Tasarım sekmesini tıklayın.
ImageButton
widget'ını Palet penceresinden Düzen Düzenleyici'ye sürükleyin.- Kaynaklar iletişim kutusunda, sol bölmeden Çekilebilir'i ve ardından içe aktardığınız çizimi seçin. Tamam'ı tıklayın.
- Resmin rengini temada tanımlanan vurgu rengiyle değiştirmek için Özellikler penceresinde Tonlama özelliğini bulup ... simgesini tıklayın.
- Kaynaklar iletişim kutusunda, sol bölmeden Renk'i ve ardından colorAccent'i seçin. Tamam'ı tıklayın.
Bu örnekte, Yeni Proje Sihirbazı ile oluşturulmuş bir Telefon/Tablet projesi kullanılmaktadır.
Çekilebilir vektör, düzende ImageButton
üzerinde görünür.
Resmin rengi, düzendeki vurgu rengine değişir.
Projede Destek Kitaplığı kullanılıyorsa ImageButton
kodu aşağıdakine benzer olmalıdır:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/ic_build_black_24dp" tools:layout_editor_absoluteX="11dp" tools:layout_editor_absoluteY="225dp" android:id="@+id/imageButton" android:tint="@color/colorAccent" />
Proje Destek Kitaplığı'nı kullanmıyorsa vektör çekilebilir kodu, android:src="@drawable/ic_build_black_24dp"
olur.
Kodda çizilebilir bir vektöre başvuruda bulunma
Normalde kodunuzda bir vektör çekilebilir kaynağına genel bir şekilde başvuruda bulunabilirsiniz ve uygulamanız çalıştığında, karşılık gelen vektör veya kafes görüntüsü, API düzeyine bağlı olarak otomatik olarak görüntülenir:
- Çoğu durumda, vektör çekilebilir kaynaklarını XML kodunda
@drawable
veya Java kodundaDrawable
olarak referans alabilirsiniz.
Örneğin, aşağıdaki düzen XML kodu, resmi bir görünüme uygular:
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/myimage" />
Aşağıdaki Java kodu resmi Drawable
olarak alır:
Kotlin
val drawable = resources.getDrawable(R.drawable.myimage, theme)
Java
Resources res = getResources(); Drawable drawable = res.getDrawable(R.drawable.myimage, getTheme());
getResources()
yöntemi; etkinlikler, parçalar, düzenler, görünümler gibi kullanıcı arayüzü nesnelerine uygulanan Context
sınıfında yer alır.
build.gradle
dosyanızda vectorDrawables.useSupportLibrary = true
ifadesi olmasa bile) app:srcCompat
ifadesiyle çekilebilir bir vektöre de başvurabilirsiniz. Örneğin:<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" app:srcCompat="@drawable/myimage" />
VectorDrawable
sınıfının belirli özelliklerini kullanmanız gerektiğinde). Bunu yapmak için aşağıdaki gibi bir Java kodu kullanabilirsiniz:Kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { val vectorDrawable = drawable as VectorDrawable } else { val bitmapDrawable = drawable as BitmapDrawable }
Java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { VectorDrawable vectorDrawable = (VectorDrawable) drawable; } else { BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; }
Vektör çekilebilir kaynaklarına yalnızca ana iş parçacığından erişebilirsiniz.
Destek Kitaplığı tekniği için, Destek Kitaplığı ile uyumlu kodlama teknikleri kullanmanız gerekir. Daha fazla bilgi için Android Destek Kitaplığı 23.2 bölümüne bakın.
Vector Asset Studio tarafından oluşturulan XML kodunu değiştirme
Çekilebilir vektör XML kodunu değiştirebilirsiniz, ancak oluşturma sırasında oluşturulan PNG'leri ve ilgili XML kodunu değiştiremezsiniz. Ancak bunu önermeyiz.
Vector Asset Studio, PNG oluşturma tekniğini kullanırken vektör çizimlerinin ve PNG'lerin eşleştiğinden ve manifestin doğru kodu içerdiğinden emin olur. Android 4.4 (API düzeyi 20) ve önceki sürümlerde desteklenmeyen bir kod eklerseniz vektörünüz ve PNG resimleriniz farklılık gösterebilir. Ayrıca, manifest dosyasının değişikliklerinizi destekleyecek kodu içerdiğinden de emin olmanız gerekir.
Destek Kitaplığı tekniğini kullanmadığınızda vektör XML dosyasını değiştirmek için:
- Proje penceresindeki drawable klasöründe oluşturulan vektör XML dosyasını çift tıklayın.
- XML kodunu minimum API seviyesinin desteklediği şekilde düzenleyin:
- Android 5.0 (API düzeyi 21) ve sonraki sürümler - Vector Asset Studio, tüm
Drawable
veVectorDrawable
öğelerini destekler. XML öğeleri ekleyebilir ve değerleri değiştirebilirsiniz. - Android 4.4 (API düzeyi 20) ve önceki sürümler: Vector Asset Studio, tüm
Drawable
öğelerini veVectorDrawable
öğelerinin bir alt kümesini destekler. Liste için Vektör Çekilebilir 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. - Projeyi oluşturun ve vektör çekilebilirliği ile karşılık gelen kafes görüntülerin aynı göründüğünü kontrol edin.
XML dosyası düzenleyicide ve Önizleme pencerelerinde görünür.
Farklı oluşturma motorları ve derlemeden önce çekilebilir vektörde yapılan değişiklikler nedeniyle, oluşturulan PNG'lerin Ö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ümlerinde desteklenmeyen özellikler, oluşturulan PNG dosyalarında görünmez. Bu nedenle, kod eklediğinizde oluşturulan PNG'lerin vektör çekilebilirliğiyle eşleşip eşleşmediğini daima kontrol etmeniz gerekir. Bunu yapmak için Proje penceresinin Proje Dosyaları görünümünde PNG'yi çift tıklayabilirsiniz. Şekil 6'da gösterildiği gibi, kodunuz çekilebilir öğeye başvuruda bulunduğunda Kod Düzenleyici'nin sol kenar boşluğu da PNG resmini gösterir.
Bir projeden çekilebilir bir vektörü silme
Bir projeden çekilebilir bir vektörü kaldırmak için:
- Proje penceresinde, oluşturulan vektör XML dosyasını dosyayı seçip Sil tuşuna basarak silin (veya Düzenle > Sil'i seçin).
- İsteğe bağlı olarak dosyanın projede kullanıldığı yeri bulmak için seçenekleri belirleyin ve Tamam'ı tıklayın.
- Build (Derleme) > Clean Project'i (Projeyi temizle) seçin.
Güvenli Silme iletişim kutusu görünür.
Android Studio, dosyayı projeden ve sürücüden siler. Bununla birlikte, projede dosyanın kullanıldığı yerleri aramayı seçtiyseniz ve bazı kullanımlar bulunursa bunları görüntüleyebilir ve dosyanın silinip silinmeyeceğine karar verebilirsiniz.
Silinmiş vektöre karşılık gelen, otomatik olarak oluşturulmuş PNG ve XML dosyaları projeden ve sürücüden kaldırılır.
Vektör çekilebilir öğeleri içeren bir uygulamayı yayınlama
Destek Kitaplığı tekniğini kullandıysanız veya minimum API düzeyiniz Android 5.0 (API düzeyi 21) ya da sonraki bir sürümse APK'nız Vector Asset Studio ile eklediğiniz vektör çizimlerini içerir. Bu APK'lar, vektör resimlerin PNG'lere dönüştürülmesinden daha küçük olacaktır.
Minimum API düzeyiniz Android 4.4 (API düzeyi 20) veya önceki sürümleri içeriyorsa ve projenizde karşılık gelen vektör çizimleri ve kafes görüntüleri varsa APK dosyalarınızı göndermek için iki seçeneğiniz vardır:
- Hem vektör çizimlerini hem de karşılık gelen kafes gösterimlerini içeren bir APK oluşturun. Bu çözüm, uygulanması en basit çözümdür.
- Farklı API düzeyleri için ayrı APK'lar oluşturun. İlgili kafes resimleri Android 5.0 (API düzeyi 21) ve sonraki sürümler için APK'ya 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 özelliklerinin yanı sıra bazı dönüştürme ayrıntıları özetlenmiştir.
Doküman
Destekleniyor:
- Bit eşlem, gri tonlamalı, dizine eklenmiş, RGB, Lab veya CMYK'nın PSD renk modu.
- 8, 16 veya 32 bit renk derinliği.
Dönüşüm ayrıntıları:
- PSD belge boyutları, vektör çekilebilir ve görüntü alanı boyutları haline gelir.
Desteklenmeyenler:
- Çift tonlu veya çok kanallı PSD renk modu.
Şekiller
Destekleniyor:
- Kırpma tabanı başka bir şekilse kırpma maskeleri.
- Birleştirme/ekleme, kesişim, çıkarma ve hariç tutma dahil şekil işlemleri.
Desteklenmeyenler:
- Photoshop şekilleri tarafından kullanılan çift tek sayılı dolgu kuralı. Android 6.0 (API düzeyi 23) ve önceki sürümlerde vektör çekilebilir öğeleri yalnızca sıfır olmayan doldurma kuralını destekler. Kendiyle kesişen şekillerde, bu sınırlama PSD ile ortaya çıkan vektör çekilebilir arasında oluşturma farklılıklarına yol açabilir. Bu sorunu düzeltmek için vektör çekilebilir dosyasındaki şekle
android:fillType="evenOdd"
ekleyin. Örnek:<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>
Fırça ve dolgular
Destekleniyor:
- Renk, opaklık, genişlik, birleştirme, kap, tire ve hizalama dahil çizgiler.
- Düz renkli dolgular ve fırçalar.
- RGB, Laboratuvar veya CMYK olarak belirtilen çizgi ve dolgu renkleri.
Dönüşüm ayrıntıları:
- Bir fırça kesik çizgiliyse, bir kırpma tabanı kullanılarak kırpılmışsa veya merkezden farklı bir hizalama kullanırsa Vector Asset Studio, bunu vektör çekilebilir özelliğinde bir dolgu şekline dönüştürür.
Desteklenmeyenler:
- Renk dolguları ve düz dışındaki fırçalar (gradyanlar gibi).
Opaklık
Destekleniyor:
- Katmanları opaklığı 0 ile şekillendirin.
Dönüşüm ayrıntıları:
- Vector Asset Studio, dolgu alfasını hesaplamak için dolgu opaklığını katman opaklığıyla çarpar.
- Araç, son dolgu alfasını hesaplamak için kırpma tabanının opaklığını (kırpma tabanı varsa) dolgu alfa karakteriyle çarpar.
- Araç, alfa çizgisini hesaplamak için fırça opaklığını katman opaklığıyla çarpar.
- Bu araç, son çizgi alfasını hesaplamak için kırpma tabanının opaklığını (bir kırpma tabanı varsa) alfa çizgisiyle çarpar.
Katmanlar
Destekleniyor:
- Herhangi bir görünür şekil katmanı.
Dönüşüm ayrıntıları:
- Vector Asset Studio, vektör çekilebilir dosyasındaki katmanların adını korur.
Desteklenmeyenler:
- Katman efektleri.
- Düzenleme ve metin katmanları.
- Harmanlama modları (yok sayıldı).
SVG dosyaları için 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
biçimine dönüştürdüğünde desteklenen ve desteklenmeyen özellikler ile ek dönüştürme ayrıntıları özetlenmektedir.
Desteklenen özellikler
VectorDrawable
, Tiny SVG 1.2'deki metin hariç tüm özellikleri destekler.
Şekiller
VectorDrawable
, SVG yollarını destekler.
Araç, daire, kare ve poligon gibi temel şekilleri yollara dönüştürür.
Dönüşümler
Araç, dönüşüm matrislerini destekleyip bunları doğrudan alt yollara uygular.
Gruplar
Araç, çevirme, ölçeklendirme ve döndürme için grup öğelerini destekler. Gruplar, opaklık özelliğini desteklemez.
Araç, grup stillerini veya opaklığını alt yollara da uygular.
Dolgular ve fırçalar
Yollar, düz renkler veya renk geçişleri (doğrusal, dairesel veya açısal) kullanılarak doldurulabilir ve çizilebilir. Yalnızca ortalanmış çizgiler desteklenir. Karışım modları desteklenmiyor. Kesikli yollar desteklenmez.
Maskeler
Araç, grup başına bir kırpma maskesini destekler.
SVG içe aktarıcısı tarafından desteklenmeyen özellikler
Yukarıdaki Desteklenen özellikler bölümünde listelenmeyen özellikler desteklenmez. Önemli desteklenmeyen özellikler arasında şunlar bulunur:
- Filtre efektleri: Gölge, bulanıklaştırma ve renk matrisi gibi efektler desteklenmez.
- Metin: Metnin diğer araçlar kullanılarak şekillere dönüştürülmesi önerilir.
- Desen dolguları