Çok yoğunluklu vektör grafikleri ekleme

Android Studio, fotoğraf çekmenize yardımcı olan Vector Asset Studio adlı bir araç içerir. materyal simgeleri kullanabilir ve Ölçeklenebilir Vektör Grafiği (SVG) ile Adobe Photoshop Dokümanı (PSD) dosyalarını içe aktarabilirsiniz. Çekilebilir vektör kaynakları olarak projenize ekleyin. Bit eşlemler yerine vektör çekilebilir öğeleri kullanmak Aynı dosya farklı ekran yoğunluklarına göre yeniden boyutlandırılabileceğinden APK'nızın boyutu hiçbir değişiklik yapmazsanız. Android'in Vector Asset Studio, derleme sırasında vektörel çekilebilirlerinizi farklı bit eşlem boyutlarına böleriz.

Vector Asset Studio hakkında

Vector Asset Studio, resmi açıklayan bir XML dosyası olarak projeye bir vektör grafiğini ekler. Tek bir XML dosyasını yönetmek, farklı bölümlerde birden fazla kafes grafiği güncellemekten daha kolay olabilir. belirler.

Android 4.4 (API düzeyi 20) ve önceki sürümler, vektör çekilebilir kaynaklarını desteklemez. Eğer minimum API düzeyiniz bu API düzeylerinden birinde ayarlanmışsa iki seçeneğiniz vardır: Vector Asset Studio'yu kullanırken: Taşınabilir Ağ Grafiği (PNG) dosyaları oluşturun (varsayılan) veya Kitaplık'a dokunun.

Geriye dönük uyumluluk için Vector Asset Studio, Çekilebilir vektörün kafes resimleri. Vektör ve kafes çekilebilir öğeleri APK'da birlikte paketlenmiş olarak sunabilirsiniz. Vektör çekilebilir öğeleri Drawable. veya XML kodunda @drawable; çalıştırıldığında, ilgili vektörü veya kafes resim, API düzeyine göre otomatik olarak gösterilir.

Yalnızca vektör çizimlerini kullanmak istiyorsanız Android Support Library 23.2 veya daha yüksek. Bu teknik için build.gradle dosyanızda değişiklik yapılması gerekir açıklandığı gibi Vector Asset Studio'yu çalıştırmadan önce Destek Kitaplığı Geriye Dönük Uyumluluğu. VectorDrawableCompat sınıfını kullanarak VectorDrawable hizmetini Android 2.1 (API düzeyi 7) ve sonraki sürümler.

Desteklenen vektör grafiği türleri

Google Materyal Tasarım spesifikasyonu, malzeme simgelerini Google Play'de kullanılabilir. Vector Asset Studio, malzeme simgelerini seçmenize, içe aktarmanıza ve boyutlandırmanıza yardımcı olmak için opaklık ve Sağdan Sola (RTL) yansıtma ayarını tanımlayabilirsiniz.

Vector Asset Studio, kendi SVG ve PSD dosyalarınızı içe aktarmanıza da olanak tanır. SVG, XML tabanlı bir açık dosyadır (World Wide Web Consortium) standardına (W3C). PSD dosya biçimi, Adobe Photoshop'u destekler özellikleri. Vector Asset Studio, tüm SVG ve PSD özelliklerini desteklemese de temel standartları destekler. Bir SVG veya PSD dosyası belirttiğinizde, Vector Asset Studio, desteklenip desteklenmediğinden emin olun. Dosyayı, VectorDrawable. girin. Hata alırsanız vektörünüzün çekilebilirliğinin amaçlandığı gibi göründüğünü doğrulamanız gerekir. İzin verilen PSD özellikleri hakkında daha fazla bilgi edinmek için bkz. PSD dosyaları için destek ve kısıtlamalar

Android 5.0 (API düzeyi 21) ve sonraki sürümlerde AnimatedVectorDrawable. sınıfına ait özelliklerin animasyonunu VectorDrawable sınıfını kullanır. Destek Kitaplığı ile AnimatedVectorDrawableCompat. sınıfını kullanmak için VectorDrawable sınıfını animasyonla değiştirin. Daha fazla bilgi için bkz. Vektör çizimlerine animasyon ekleme.

SVG ve PSD dosyalarıyla ilgili dikkat edilmesi gereken noktalar

Basit simgeler için çekilebilir bir vektör uygundur. İlgili içeriği oluşturmak için kullanılan malzeme simgelerinin kullanıcılara türlere ilişkin örnekler iyi çalışan resimlere bir örnek. Buna karşılık, birçok uygulama başlatma simgesinin bu nedenle kafes görüntüler olarak daha iyi performans gösterir.

Bir çekilebilir vektörün ilk yüklenmesi, karşılık gelen kafesten daha fazla CPU döngüsüne mal olabilir görüntüsüdür. Daha sonra bellek kullanımı ve performans, ikisi arasında benzerdir. Önerilerimiz: bir vektör resmi maksimum 200 x 200 dp ile sınırlandırın; Aksi takdirde, çizim çok uzun sürebilir.

Vektör çekilebilir öğeleri bir veya daha fazla rengi desteklese de çoğu durumda renklendirmek mantıklıdır. siyah simgeler (android:fillColor="#FF000000"). Bu yaklaşımı kullanarak, çekilebilir vektörü tonlama simge renginin ton rengine dönüştüğünü görebilirsiniz. Simgenin rengi yoksa simge rengi ton rengiyle karışabilir.

Vektörel çekilebilir geriye dönük uyumluluk çözümleri

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

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

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

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

Varsayılan Desteklenen çeşitli kodlama teknikleri
Destek Kitaplığı 23.2 veya sonraki sürümler Vektör Tam destek Gradle 2.0 veya sonraki sürümler için Android eklentisi Destek Kitaplığı ifadeleri gerekli Desteklenen kodlama tekniklerinin alt kümesi

Vektör çekilebilir öğelerinin kullanılması daha küçük bir APK üretebilir, ancak vektör çizimlerinin 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 çekilebilir desteği sağlar. Uygulamanızda daha düşük bir minimum API düzeyine ulaştığınızda, Vector Asset Studio, vektörel çekilebilir dosyayı şuraya ekler: proje; Gradle, derleme sırasında çeşitli dillerde PNG kafes görüntüler oluşturur. belirler. Gradle, Alana Özgü Dil (DSL) tarafından belirtilen PNG yoğunluklarını oluşturur generateDensities özelliği bir build.gradle dosyası oluşturur.

Vector Asset Studio, Android 5.0 (API düzeyi 21) ve sonraki sürümler için VectorDrawable. öğeler. Android 4.4 (API) ile geriye dönük uyumluluk için 20. düzey) ve altındaysa Vector Asset Studio şu 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

En iyi uygulama olmasa da Vector Asset Studio'nun oluşturduğu XML kodunu değiştirebilirsiniz. Koddaki değerlerin değiştirilmesi, geçerli ve statik oldukları sürece herhangi bir soruna neden olmaz. Eğer XML öğeleri eklemek isterseniz, bu öğelerin minimum API'nize göre desteklendiğinden emin olmanız gerekir. seviyesinde olmalıdır.

Destek Kitaplığı

Bu teknik, Android Destek Kitaplığı 23.2 veya sonraki bir sürümünü ve Android'i gerektirir Gradle 2.0 veya sonraki sürümler için olan eklentidir ve yalnızca vektör çekilebilir öğeleri kullanır. İlgili içeriği oluşturmak için kullanılan VectorDrawableCompat. sınıfını kullanarak VectorDrawable hizmetini Android 2.1 (API düzeyi 7) ve sonraki sürümler.

Kullanmadan önce Vector Asset Studio, build.gradle dosyası:

Eski

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")
}

Ayrıca, Destek Ekibi'yle uyumlu kodlama tekniklerini app:srcCompat özelliğini kullanmak gibi Vektör çekilebilir öğeleri için android:src özelliği. Daha fazla bilgi için bkz. Android Destek Kitaplığı 23.2.

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. Proje penceresinde Android görünümü.
  3. res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi.
  4. Bazı proje görünümlerinde ve klasörlerinde bu menü öğesi de bulunur.

    Vector Asset Studio görünür.

    1. Şekil. Vector Asset Studio.

  5. Bunun yerine Gradle için Daha Yeni Android Eklentisi Gerekiyor iletişim kutusu görünürse aşağıdaki gibi Gradle sürümünüzü ekleyin:
    1. Dosya > seçeneğini belirleyin. Proje Yapısı.
    2. Proje Yapısı iletişim kutusundan Proje'yi seçin.
    3. Android Eklentisi Sürümü alanında, Gradle için Android Eklentisi'ni değiştirin. sürümünü 1.5.0 veya daha yüksek bir sürüme ayarlayın ve Tamam'ı tıklayın.
    4. Gradle, projeyi senkronize eder.

    5. Android görünümünde Proje penceresinde res klasörünü sağ tıklayın ve Yeni > Vektör Öğesi.
    6. Vector Asset Studio görünür.

  6. Vektör Grafiği içe aktarma işlemine devam edin.

Vektör grafiği içe aktarma

Vector Asset Studio, bir vektör grafik dosyasını uygulama projenize aktarmanıza yardımcı olur. Birini takip et şu prosedürlerden yararlanabilirsiniz:

Materyal simgesi ekleme

Vector Asset Studio'yu açtıktan sonra bir materyal simgesini şu şekilde ekleyebilirsiniz: şöyle olur:

  1. Vector Asset Studio'da Material Simgesi'ni seçin.
  2. Simge alanındaki düğmeyi tıklayın.
  3. Simge Seçin iletişim kutusu görünür. Siz soldaki listeden bir simge kategorisi seçerek veya Şekil 2'de gösterildiği gibi arama alanına yazarak başlayın.

    2. Şekil. Vektör Öğesinde malzeme simgelerini filtreleme Stüdyo'yu seçin.

  4. Bir malzeme simgesi seçip Tamam'ı tıklayın. Simge, tablodaki Vektör Çekilebilir Önizleme.

  5. İsteğe bağlı olarak kaynak adını, boyutu, opaklığı 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 otomatik olarak benzersiz bir ad oluşturur (adın sonuna bir sayı ekler) söz konusu kaynak adı projede mevcutsa. Ad, küçük harf içerebilir Yalnızca karakterler, alt çizgi ve rakamlar kullanılmalıdır.
    • Geçersiz kıl: Aşağıdaki durumlarda bu seçeneği belirleyin: resmin boyutunu ayarlamak istiyorsunuz. 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 bu boyut malzeme tasarım bakın. Varsayılan ayarlara dönmek için onay kutusunun seçimini kaldırın.

    • Saydamlık - Resmin opaklığını ayarlamak için kaydırma çubuğunu kullanın. Değişiklik önizleme alanında görünür.
    • Sağdan sola düzeni için otomatik yansıtmayı etkinleştir - Bir düz ekran adının düzen soldan sağa değil, sağdan sola olduğunda görüntülenecek şekilde yansıtılan resimdir. Örneğin, Örneğin, bazı diller sağdan sola doğru okunur; bir ok simgeniz varsa bunu ayna görüntüsü kullanın. Unutmayın, eski bir projeyle çalışıyorsanız RACI matrisleri android:supportsRtl="true" öğesini uygulama manifestinize eklemeniz gerekiyor. Otomatik yansıtma (şimdiki değeri) Android 5.0 (API düzeyi 21) ve sonraki sürümlerde ve Destek Kitaplığı ile desteklenir.
  6. İleri'yi tıklayın.
  7. İsteğe bağlı olarak modülü ve kaynak dizinini değiştirin:
    • Res Directory - çekilebilir vektör: src/main/res, src/debug/res, src/release/res, veya kullanıcı tanımlı bir kaynak kümesi olabilir. Ana kaynak grubu, şunlar dahil tüm derleme varyantları için geçerlidir: hata ayıklamak ve yayınlamaktır. Hata ayıklama ve sürüm kaynağı grupları, ana kaynak grubunu geçersiz kılar ve bir derleme sürümü olarak yükleyebilirsiniz. Hata ayıklama kaynağı grubu yalnızca hata ayıklama amaçlıdır. Yeni bir kaynak tanımlamak için ayarlayın, Dosya'yı seçin > Proje Yapısı > uygulama > Derleme Türleri. Örneğin, bir beta kaynak kümesi tanımlayabilir ve "BETA" metnini içeren bir simge sürümü dokunun. Daha fazla bilgi için bkz. Derleme Varyantlarını Yapılandırma

    Çıkış Dizinleri alanında çekilebilir vektör ve dizin görüneceği yeri seçin.

  8. Son'u tıklayın.
  9. Vector Asset Studio, app/src/main/res/drawable/ klasör. Şuradan: Şunun Android görünümü: Proje penceresinde oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.

  10. Projeyi oluşturun.
  11. Minimum API düzeyi Android 4.4 (API düzeyi 20) veya önceki bir sürümse ve Vector Asset Studio, Destek Kitaplığı tekniğini etkinleştirmemişse PNG dosyalarıdır. Şuradan: Proje Dosyaları görünümü penceresindeki Proje penceresinde, oluşturulan PNG ve XML dosyalarını app/build/generated/res/pngs/debug/ klasör.

    Oluşturulan bu raster dosyalarını düzenlememeniz, bunun yerine vektör XML dosyasıyla çalışmanız gerekir. İlgili içeriği oluşturmak için kullanılan derleme sistemi, kafes dosyaları gerektiğinde otomatik olarak yeniden oluşturur; böylece sizin gerekir.

SVG veya PSD dosyasını içe aktarma

Vector Asset Studio'yu açtıktan sonra SVG veya PSD dosyasını şu şekilde içe aktarabilirsiniz: şöyle olur:

  1. Vector Asset Studio'da Yerel dosya'yı seçin.
  2. Dosya yerel bir sürücüde olmalıdır. Örneğin, ağ üzerindeyse önce yerel bir sürücüye indirin.

  3. ... simgesini tıklayarak bir Resim dosyası belirtin.
  4. Resim, Vektör Çekilebilir Önizlemesi'nde görünür.

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

    3. Şekil. Vector Asset Studio bazı hatalar gösteriliyor.

    Hata görürseniz içe aktarılan vektörün çekilebilirliğinin doğru oluşturulduğundan emin olmanız gerekir. Hataları görüntülemek için listede gezinin.

    Desteklenen öğelerin listesi için bkz. Vektör Çekilebilir Geriye Dönük Uyumluluk Çözümleri. İzin verilen PSD dosyaları hakkında daha fazla bilgi edinmek için bkz. PSD Dosyaları için Destek ve Kısıtlamalar.

  5. İsteğe bağlı olarak kaynak adını, boyutu, opaklığı ve Sağdan Sola (RTL) yansıtmayı değiştirin ayar:
    • Ad - Varsayılan adı kullanmak istemiyorsanız yeni bir ad yazın dokunun. Vector Asset Studio otomatik olarak benzersiz bir ad oluşturur ( adı) eklemesi gerekir. Ad, küçük harf içerebilir Yalnızca karakterler, alt çizgi ve rakamlar kullanılmalıdır.
    • Geçersiz kıl: Aşağıdaki durumlarda bu seçeneği belirleyin: resmin boyutunu ayarlamak istiyorsunuz. Seçiminizi yaptıktan sonra boyut, reklamın bir resim yükleyebilirsiniz. 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 bu boyut malzeme tasarım bakın.
    • Saydamlık - Resmin opaklığını ayarlamak için kaydırma çubuğunu kullanın. Değişiklik önizleme alanında görünür.
    • Sağdan sola düzeni için otomatik yansıtmayı etkinleştir - Bir düz ekran adının düzen soldan sağa değil, sağdan sola olduğunda görüntülenecek şekilde yansıtılan resimdir. Örneğin, Örneğin, bazı diller sağdan sola doğru okunur; bir ok simgeniz varsa bunu ayna görüntüsü kullanın. Unutmayın, eski bir projeyle çalışıyorsanız belirli bir android:supportsRtl="true" öğesini uygulama manifestinize eklemeniz gerekiyor. Otomatik yansıtma (şimdiki değeri) , Android 5.0 (API düzeyi 21) ve sonraki sürümler ile Destek Kitaplığı tarafından desteklenir.
  6. İleri'yi tıklayın.
  7. İsteğe bağlı olarak kaynak dizinini değiştirin:
    • Res Directory - vektör çekilebilir: src/main/res, src/debug/res, src/release/res, veya kullanıcı tanımlı bir kaynak kümesi olabilir. Ana kaynak grubu, şunlar dahil tüm derleme varyantları için geçerlidir: hata ayıklamak ve yayınlamaktır. Hata ayıklama ve sürüm kaynağı grupları, ana kaynak grubunu geçersiz kılar ve bir derleme sürümü olarak yükleyebilirsiniz. Hata ayıklama kaynağı grubu yalnızca hata ayıklama amaçlıdır. Yeni bir kaynak tanımlamak için ayarlayın, Dosya'yı seçin > Proje Yapısı > uygulama > Derleme Türleri. Örneğin, bir beta kaynak kümesi tanımlayabilir ve "BETA" metnini içeren bir simge sürümü dokunun. Daha fazla bilgi için bkz. Derleme Varyantlarını Yapılandırma

    Çıkış Dizinleri alanında çekilebilir vektör ve dizin görüneceği yeri seçin.

  8. Son'u tıklayın.
  9. Vector Asset Studio, app/src/main/res/drawable/ klasör. Şuradan: Şunun Android görünümü: Proje penceresinde oluşturulan vektör XML dosyasını drawable klasöründe görüntüleyebilirsiniz.

  10. Projeyi oluşturun.
  11. Minimum API düzeyi Android 4.4 (API düzeyi 20) veya önceki bir sürümse ve Vector Asset Studio, Destek Kitaplığı tekniğini etkinleştirmemişse PNG dosyalarıdır. Şuradan: Proje Dosyaları görünümü penceresindeki Proje penceresinde, oluşturulan PNG ve XML dosyalarını app/build/generated/res/pngs/debug/ klasör.

    Oluşturulan bu raster dosyalarını düzenlememeniz, bunun yerine vektör XML dosyasıyla çalışmanız gerekir. İlgili içeriği oluşturmak için kullanılan derleme sistemi, kafes dosyaları gerektiğinde otomatik olarak yeniden oluşturur; böylece sizin gerekir.

Düzene çekilebilir vektör ekleme

Bir düzen dosyasında, simgeyle ilgili herhangi bir widget'ı ayarlayabilirsiniz. Örneğin, ImageButton, ImageView vb. çekilebilir bir vektörü işaret eder. Örneğin, düzen, bir düğmede çekilebilir bir vektörü gösteriyor:

4. Şekil. Sayfadaki bir düğmede görüntülenen çizim kullanır.

Şekilde gösterildiği gibi bir widget üzerinde çizilebilir bir vektörü görüntülemek için:

  1. Bir proje açın ve bir çekilebilir vektörü içe aktarın.
  2. Bu örnekte, Yeni Proje Sihirbazı ile oluşturulmuş bir Telefon/Tablet projesi kullanılmaktadır.

  3. Cihazın Android görünümünde Proje penceresindeki gibi bir düzen XML dosyasını çift tıklayın. content_main.xml.
  4. Şu öğeyi görüntülemek için Tasarım sekmesini tıklayın: Düzen Düzenleyici.
  5. ImageButton simgesini sürükleyin. widget'ını Palet penceresinden Düzen Düzenleyici'ye taşıyın.
  6. Kaynaklar iletişim kutusunda, sol bölmeden Çekilebilir'i seçin ve içe aktardığınız çekilebilir vektörü seçin. Tamam'ı tıklayın.
  7. Çekilebilir vektör, düzendeki ImageButton bölümünde görünür.

  8. Resmin rengini temada tanımlanan vurgu rengiyle değiştirmek için Özellikler penceresinde Ton özelliğini seçin ve ... seçeneğini tıklayın.
  9. Kaynaklar iletişim kutusunda şunları seçin: Sol bölmede Renk, ardından colorAccent'i seçin. Tamam'ı tıklayın.
  10. Resmin rengi, düzendeki vurgu rengine dönüşür.

Proje Destek Kitaplığı'nı kullanıyorsa ImageButton kodu aşağıdakine benzer:

<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örel çekilebilir kod android:src="@drawable/ic_build_black_24dp"

Kodda çekilebilir bir vektöre atıfta bulunma

Normalde bir vektör çekilebilir kaynağına kodunuzda genel bir şekilde referans ilgili vektör veya kafes görüntü, API'ye bağlı olarak otomatik olarak gösterilir. seviye:

  • Çoğu durumda, vektör çekilebilir öğelerine XML kodunda @drawable veya Drawable kullanır.
  • Örneğin, aşağıdaki düzen XML kodu görüntüyü 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, görüntüyü Drawable:

    Kotlin

    val drawable = resources.getDrawable(R.drawable.myimage, theme)

    Java

    Resources res = getResources();
    Drawable drawable = res.getDrawable(R.drawable.myimage, getTheme());
    

    getResources() yöntemi, Context sınıfını kullanır. Örneğin, öğeler, parçalar, düzenler, görünümler vb.

  • Uygulamanız Destek Kitaplığı'nı hiç kullanıyorsa (daha fazla bilgi edinmek için vectorDrawables.useSupportLibrary = true ekstre build.gradle dosyası) kullanıyorsanız, birden fazla app:srcCompat ifadesi. Örnek:
  • <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:srcCompat="@drawable/myimage" />
    
  • Bazen çekilebilir kaynağı tam sınıfına yazmanız gerekebilir. Örneğin: ürünün belirli özelliklerini kullanmanız gerektiğinde VectorDrawable. sınıfını kullanır. Bunun 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, doğru kullanıcı tarafından sunulan Destek Kitaplığı ile uyumludur. Daha fazla bilgi için bkz. Android Destek Kitaplığı 23.2.

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

Vektör çekilebilir XML kodunu değiştirebilirsiniz, ancak PNG'leri ve oluşturulan ilgili XML kodunu değiştiremezsiniz. olduğunu unutmayın. Ancak bunu yapmanızı önermeyiz.

Vector Asset Studio, PNG oluşturma tekniğini kullanırken vektörün çekilebilir ve PNG'lerin eşleştiğinden ve manifest'in uygun kodu içerdiğinden emin olun. Örneğin, Android 4.4 (API düzeyi 20) ve önceki sürümlerde desteklenmiyor, vektörünüz ve PNG görseller farklılık gösterebilir. Ayrıca, manifest dosyasında dosyanın Google tarafından desteklenen kodu anlamına gelir.

Destek Kitaplığı'nı kullanmadığınızda vektör XML dosyasını değiştirmek için teknik:

  1. Proje penceresinde, oluşturulan vektör XML dosyasını çift tıklayın. drawable klasörü.
  2. XML dosyası, düzenleyicide ve Önizleme pencerelerinde gösterilir.

    5. Şekil. Kod Düzenleyici'de görüntülenen bir vektör XML dosyası ve Önizleme penceresi

  3. XML kodunu minimum API düzeyinin desteklediği özelliklere göre düzenleyin:
  4. Projeyi oluşturun ve vektörün çekilebilir ve karşılık gelen kafes görüntülerin aynı görünüyor.
  5. Oluşturulan PNG'lerin Önizleme penceresinde farklı oluşturma motorları ve vektörde yapılan değişiklikler nedeniyle çizime aktarılmadan önce seçeceğiz. Vector Asset Studio tarafından oluşturulan vektör XML dosyasına kod eklerseniz Android 4.4 (API düzeyi 20) sürümlerinde desteklenmez. Kullanıcı kodu eklediğinizde, oluşturulan PNG'lerin vektörle eşleşip eşleşmediğini her zaman kontrol etmelisiniz. çekilebilir. Bunu yapmak için, pencerenin içindeki PNG'yi çift tıklayabilirsiniz. Proje Dosyaları görünümünü Proje pencere; Kod Düzenleyici'nin sol kenar boşluğunda, PNG resmi de gösterilir. çekilebilirsiniz; Şekil 6'da gösterildiği gibi.

    6. Şekil. Sayfanın sol kenar boşluğunda bir PNG Kod Düzenleyici.

Projeden çekilebilir bir vektörü silme

Projeden çekilebilir bir vektörü kaldırmak için:

  1. Proje penceresinde, dosyayı seçerek oluşturulan vektör XML dosyasını silin ve Delete tuşuna basın (veya Düzenle'yi seçin > Sil).
  2. Güvenli Silme iletişim kutusu görünür.

  3. İsteğe bağlı olarak dosyanın projede kullanıldığı yeri bulmak için seçenekleri belirleyin ve Tamam.
  4. Android Studio, dosyayı projeden ve Drive'dan siler. Ancak, bir tarih aralığı için projede dosyanın kullanıldığı ve bazı kullanımların bulunduğu yerler için bunları görüntüleyebilir ve dosyanın silinip silinmeyeceğine karar verir.

  5. Derle'yi seçin > Temiz Proje.
  6. Silinen vektöre karşılık gelen otomatik olarak oluşturulan PNG ve XML dosyaları çekilebilir öğeler projeden ve sürücüden kaldırılır.

Vektör çekilebilir öğeleri içeren uygulama iletme

Destek Kitaplığı tekniğini kullandıysanız veya minimum API düzeyiniz: Android 5.0 (API düzeyi 21) veya sonraki bir sürüm yüklüyse APK'nız vektör çekilebilir kaynaklarını içerir Vector Asset Studio ile eklediğiniz bir öğe. Bu APK'lar, vektör görüntülerin PNG'lere dönüştürülmesi durumundan daha küçük olacaktır.

Minimum API düzeyiniz Android 4.4 (API düzeyi 20) veya önceki sürümleri içerdiğinde ve projenizde karşılık gelen vektör çekilebilir öğeleri ile kafes görüntüler 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 vektörleri içeren bir APK oluşturma kafes temsilleri. Uygulanması en kolay çözüm budur.
  • Farklı API düzeyleri için ayrı APK'lar oluşturun. Örneğin Android 5.0 (API düzeyi 21) için APK'da karşılık gelen raster resimler ve APK'nın boyutu çok daha küçük olabilir. Daha fazla bilgi için bkz. Birden Fazla APK Desteği.

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üşüm ayrıntılarını da inceleyebilirsiniz.

Doküman

Desteklenir:

  • Bit eşlem, gri tonlama, dizine eklenmiş, RGB, Lab veya CMYK'dan oluşan bir PSD renk modu.
  • 8, 16 veya 32 bit renk derinliği.

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

  • PSD doküman boyutları, çekilebilir vektör ve görüntü alanı haline gelir. seçin.

Desteklenmeyenler:

  • Çift tonlu veya çok kanallı PSD renk modu.

Şekiller

Desteklenir:

  • Kırpma tabanı başka bir şekilse kırpma maskeleri.
  • Birleştirme/ekleme, kesişim, çıkarma ve birleştirme gibi şekil işlemleri hariç tut'a dokunun.

Desteklenmeyenler:

  • Photoshop şekilleri tarafından kullanılan çift tek dolgu kuralı. Android 6.0'da (API düzeyi 23) ve altında, vektör çekilebilir öğeleri yalnızca sıfır olmayan dolgu kuralını destekler. İçinde şekillerin kesiştiği durumlarda, bu sınırlama, oluşturmada farklılıklara Böylece, PSD ile elde edilen çekilebilir vektör arasında yer alır. Bu sorunu düzeltmek için Çekilebilir vektördeki şekil üzerinde android:fillType="evenOdd". Örneğin, ö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>
    

Çizgiler ve dolgular

Desteklenir:

  • Renk, opaklık, genişlik, birleştirme, büyük harf, tire ve hizalama dahil olmak üzere çizgiler.
  • Düz renk dolguları ve fırçalar.
  • RGB, Lab veya CMYK olarak belirtilen çizgi ve dolgu renkleri.

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

  • Çizgi kesik çizgiliyse, kırpma tabanı kullanılarak kırpılmışsa veya hizalama kullanılıyorsa merkezden farklı bir şekilde, Vector Asset Studio, bunu çekilebilirsiniz.

Desteklenmeyenler:

  • Renk dolguları ve fırça darbeleri (ör. gradyanlar).

Opaklık

Desteklenir:

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

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

  • Vector Asset Studio, dolgu opaklığını katman opaklığıyla şu şekilde çarpar: dolgu alfasını hesaplayın.
  • Araç, kırpma tabanının opaklığını çarpar (bir kırpma varsa taban) alfa dolgusuyla doldurulur.
  • Araç, çizgi alfa.
  • Araç, kırpma tabanının opaklığını çarpar (bir kırpma varsa taban).

Katmanlar

Desteklenir:

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

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

  • Vector Asset Studio, çekilebilir vektörel katmanların adını korur dosyası olarak kaydedebilirsiniz.

Desteklenmeyenler:

  • Katman efektleri.
  • Düzenleme ve metin katmanları.
  • Harmanlama 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 araç bir SVG dosyasını VectorDrawable ek dönüşüm ayrıntılarıyla birlikte gösterilir.

Desteklenen özellikler

VectorDrawable, şu uygulamaların tüm özelliklerini destekler: Şu hariç Küçük SVG 1.2: metin.

Şekiller

VectorDrawable destekler SVG yolları.

Araç, küçük boyutlu şekilleri şekilde daire, kare ve çokgen şeklinde çizebilirsiniz.

Dönüşümler

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

Gruplar

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

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

Dolgular ve fırça darbeleri

Yollar düz renkler veya renk geçişleri (doğrusal, dairesel ya da açısal) kullanılarak doldurulabilir ve çizilebilir. Yalnızca ortalanmış fırçalar desteklenir. Karışım modları desteklenmez. Kesikli yollar desteklenir.

Maskeler

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

SVG içe aktarıcısının desteklemediği özellikler

Yukarıdaki Desteklenen özellikler bölümünde listelenmeyen tüm özellikler desteklenmez. Desteklenmeyen önemli özelliklerden bazıları şunlardır:

  • 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ı