Подтвердить что ты не робот

Векторное изображение становится неровным

Я использовал пару изображений, которые импортировал с помощью Android Studio Vector Asset Studio через локальный файл SVG.

Изображения отлично загружаются на моем nexus 6p, однако на Sony Xperia Z он очень пиксельный, а на Samsung Galaxy s2 - еще хуже.

Насколько я понимаю, поскольку файл представляет собой xml (векторный), а не png файл, он должен был иметь возможность автоматически изменять размер, или я что-то упустил.

Я приложил изображение 3 случаев. enter image description here

РЕДАКТИРОВАТЬ: Просто некоторая дополнительная информация: файл изначально был PNG, однако я полностью преобразовал в векторный файл с помощью программы под названием Vector Magic. Я могу открыть его в иллюстраторе и редактировать каждую строку и т.д.

Решается путем перехода с VectorDrawable на VectorDrawableCompat с помощью метода VectorDrawableCompat.create(..). Спасибо @pskink.

4b9b3361

Ответ 1

Добавление android:scaleType="fitXY" к изображению разрешило его для меня.

Ответ 2

Android поддерживает SVG на уровне API 21 и выше. Для уровня API 19, 20 это возврат к генерации png. SVG, который мы поместили в приложение, имел меньший размер для этих поколений, и, следовательно, вы, похоже, получаете пиксельные изображения на вашем экране. В моем случае увеличение

<vector android:height="70dp" android:width="70dp"

вектора XML сгенерировал лучше png, и он стал выглядеть лучше на старых устройствах

Ответ 3

Для меня причиной, по которой векторы были преобразованы в png, был атрибут android:fillType="evenodd" в моем векторном объекте. Когда я удалил все вхождения этого атрибута в моем рисоваемом (то есть в векторе, используя тип заливки по умолчанию nonzero), в следующий раз приложение было построено, все было хорошо.