В последней версии Android Support Library (23.2) добавлена поддержка векторных чертежей. Похоже, что это происходит путем растрирования векторов "на лету" на платформах, которые не поддерживают векторные чертежи.
Однако изображение с растеризацией кажется фиксированным, что зависит от использования. Вот пример.
вектор
<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>
Разметка
<ImageView
android:layout_width="128dp"
android:layout_height="128dp"
android:id="@+id/imageView"
app:srcCompat="@drawable/vector1"/>
Вектор 24dp x 24dp. Он используется в ImageView, 128dp x 128dp. На платформах, которые не поддерживают векторные чертежи, результирующее изображение размыто, потому что вектор растеризуется при 16dp и изменяется до 128dp.
Единственное решение, которое я нашел, - создать отдельный вектор, пригодный для каждого размера. Это довольно раздражает, чтобы создать кучу повторяющихся векторов с изменениями высоты и ширины. И это не решает проблему, если вы хотите, чтобы drawable для fill_parent или был динамически определен каким-то другим способом.
Чтобы определить размеры ваших векторных изображений в продвинутых, почти полностью поражает преимущество использования векторов в первую очередь.
Есть ли у кого-то истинная работа?