В библиотеке поддержки Android 23.2 векторные рисунки размыты
В последней версии библиотеки поддержки Android (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 или динамически изменял размер другим способом.
Необходимо заранее определить размеры ваших векторных изображенийпочти в первую очередь полностью исключает преимущество использования векторов.
У кого-нибудь есть настоящая работа вокруг?