6

Android Destek Kitaplığı'nın en son sürümü (23.2) vektörel çizimler için destek ekler. Vektör çizgilerini doğal olarak desteklemeyen platformlardaki vektörleri uçarak rasterleştirerek bunu yapar gibi görünüyor. Ancak, rasterleştirilen görüntü, kullanıma bağlı olarak sabit boyutta görünmektedir. İşte bir örnek.Android Destek Kitaplığı 23.2 vektörel çizim penceresi bulanık

Vektör vektör 24dp x 24dp olan

<ImageView 
    android:layout_width="128dp" 
    android:layout_height="128dp" 
    android:id="@+id/imageView" 
    app:srcCompat="@drawable/vector1"/> 

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.0" 
     android:viewportHeight="24.0"> 
    <path 
     android:fillColor="#FF000000" 
     android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zm0,3c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zm0,14.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/> 
</vector> 

Düzen. 128dp x 128dp olan bir ImageView'da kullanılır. Vektör çekilişlerini desteklemeyen platformlarda, sonuç 16dp'de rasterleştirildiği ve 128dp'ye yeniden boyutlandırıldığı için ortaya çıkan görüntü bulanıktır.

Bulduğum tek çözüm, hedeflenen her boyut için çizilebilir ayrı bir vektör oluşturmaktır. Sadece yükseklik ve genişlik değişiklikleri ile bir çift yinelenen vektör oluşturmak için oldukça can sıkıcı. Ve bu, çekilebilir olanın fill_parent olmasını veya başka bir şekilde dinamik olarak boyutlandırılmasını istiyorsanız sorunu çözmez.

Vektör görüntülerinin boyutlarını tanımlamak zorunda kalmadan, numaralı telefonun neredeyse tümüyle vektörleri kullanmanın yararını tamamen ortadan kaldırır.

Herkesin etrafında gerçek bir işi var mı?

cevap

11

vektör 16dp rasterleştirilir ve 23.1 kadar

, Android sağlanan VectorDrawable başlayarak raster görüntüler oluştururken edildi 128dp şekilde yeniden boyutlandırılır. Bu şey destek kitaplığının v23.2 içinde değişti. Bu davranış, build.gradle doğru ayarladıysanız gerçekleşir. Eğer senkronize sonra, çalışma alanınızı temizlemek ve yeniden inşa 1.5.0

android { 
    defaultConfig { 
    generatedDensities = [] 
    } 

    // This is handled for you by the 2.0+ Gradle Plugin 
    aaptOptions { 
    additionalParameters "--no-version-vectors" 
    } 
} 

kullanıyorsanız

Eğer Gradle Plugin 2.0+ kullanıyorsanız,

android { 
    defaultConfig { 
    vectorDrawables.useSupportLibrary = true 
    } 
} 

ekleyin. Bu konuda daha fazla bilgi edinebilirsiniz here ve here

+0

Teşekkürler, oluşturulanDensities bölümünü eklemeyi ihmal ettim ve bu notun görüntüleri rasterleştirebileceğini anlayamadım. – Ben

İlgili konular