How to use VectorDrawables in Android API lower than 21?
Как использовать VectorDrawables в Android API младше 21?
Я работаю над проектом для Android и я выбрал <vector> для отображения значка, потому что он адаптируемый и динамичный, однако я просто могу запустить это приложение на устройствах под управлением Android, которые имеют API 21 или выше. Мой вопрос в том, как я могу использовать <vector> на более низкой версии Android, т.е. API 14 или что-то вроде. Спасибо!
Благодаря библиотеке поддержки 23.2 была обеспечена настоящая поддержка векторных отрисовок вплоть до версии API 7. Рекомендуется отключить предыдущую версию поддержки, которая отображала PNG во время сборки, добавив
Тем не менее, я бы все равно порекомендовал что-то вроде библиотеки Iconics, AndroidSVG или другого решения для создания значков шрифтов или SVG для полной поддержки SVG-standand и векторных изображений.
Ответ 2
VectorDrawable поддерживаются до Lollipop через библиотеку поддержки, но способ их использования зависит от имеющейся у вас версии библиотеки поддержки. И это может работать не во всех случаях.
Я сделал эту диаграмму, чтобы помочь (действительна для библиотеки поддержки с 23.4.0 по -крайней мере - 25.1.0).
Ответ 3
Я нашел решение! Для тех, кто ищет решение с TextView и другими атрибутами пространства имен "Android". Прежде всего, это необходимо:
Теперь вы можете использовать app:srcCompat="@drawable/ic_add" но если вы попытаетесь использовать android:background= или android:drawableLeft= это приведет к сбою приложения с исключением "Раздувания ошибки".
Мы можем создать обернутый drawable ic_add_wrapped.xml для этого вектора:
И теперь это будет работать с любым свойством, таким как drawableLeft или background. Просто установите android:drawableLeft="@drawable/ic_add_wrapped.xml". ВНИМАНИЕ! ЭТО ОБХОДНОЕ РЕШЕНИЕ. Таким образом, вы используете его на свой страх и риск.
Ответ 4
Векторные файлы для рисования теперь обратно совместимы, осталось только обновить версию gradle до 1.4.0-beta3 или выше и обновить IDE :
Мы также рады предложить обратную совместимость для ваших векторных ресурсов в Android Studio 1.4. Как только в вашем res / drawable появится векторное изображение, плагин Gradle автоматически сгенерирует растровые PNG-изображения для API 20-го уровня и ниже во время сборки. Это означает, что вам нужно только обновлять и поддерживать свой векторный ресурс для вашего проекта приложения, а Android Studio может позаботиться о процессе преобразования изображений.