SVG в форму Android

Мне интересно, как векторное рисование в Android с классом Shape может напоминать другой стандарт векторного рисования.

Поскольку Shape — это Drawable, а Drawables обычно определяются как XML, это очень похоже на команды векторного рисования в SVG.

У меня такой вопрос: кто-нибудь создал преобразование XSLT или другой механизм для преобразования описания рисунка SVG в формы Android?


person Buggieboy    schedule 03.06.2010    source источник
comment
Я также ищу что-то подобное и очень озадачен, почему это не реализовано. Как вы упомянули, простого преобразования команд рисования было бы достаточно (по крайней мере, для подмножества SVG). Я даже иногда делал это вручную для очень простых фигур (определение фона кнопок с помощью такого градиента — это здорово), и я более или менее не разбираюсь в особенностях SVG.   -  person Igor Čordaš    schedule 27.02.2014
comment
Отличный вопрос, неправильный звонок, чтобы закрыть его. Я думаю, что это фантастическая идея иметь конвертер из SVG в Shape. Я могу написать один, но я ненавижу XSLT, поэтому я бы, вероятно, сделал это с помощью C # или, я думаю, это должен быть Java.   -  person Martin Capodici    schedule 10.06.2014
comment
Я бы посоветовал вам использовать VectorDrawable. Лучшее решение, которое я нашел, — это библиотека BetterVectorDrawable вместе с конвертером SVG в VectorDrawable. BetterVectorDrawable — это реализация VectorDrawable для Android 4.0+ с настраиваемым резервным поведением на Android 5.0+. Конвертер SVG в VectorDrawable — это пакетный конвертер изображений SVG в файлы ресурсов Android VectorDrawable XML. Интернет-версия: a-student.github.io/SvgToVectorDrawableConverter.Web   -  person A-student    schedule 10.09.2015


Ответы (6)


Еще одна библиотека без GPL (это Apache License 2.0), используемая в приложении Androidify от Google: svg-android

https://github.com/pents90/svg-android

person dgmltn    schedule 11.05.2011

Ну, не совсем так. Но я портировал libsvg на Android, что позволяет загружать файлы SVG и отображать их на холсте.

Пожалуйста, проверьте:

https://launchpad.net/libsvg-android

person Anton P    schedule 03.06.2010
comment
Веб-сайт говорит, что вы должны скачать с помощью bazaar, достаточно просто! - person Anton P; 23.06.2010
comment
Если бы только это была не GPL! Подходит только для бесплатного программного обеспечения, просто чтобы вы знали - person Paul Gregoire; 28.01.2012
comment
@AntonP только что попробовал вашу библиотеку с изображением, созданным с помощью inkscape, около 300 КБ. Это не может отобразиться: ошибка нехватки памяти :)) - person ; 06.10.2013

Самое близкое, что я смог найти, это svg4mobile.

Хотя я не верю, что он выполняет преобразования в XML Drawables, он читает svg и делает соответствующие вызовы для классов Drawable.

person Buggieboy    schedule 15.06.2010

Помимо двух упомянутых библиотек GPL, существует коммерческая библиотека под названием TinyLine, которая реализует подмножество SVG Tiny, которое, хотя и более limited может быть лучшим выбором лицензирования, если вы хотите создать приложение без GPL.

person Mark    schedule 16.11.2010


У замечательного AndEngine есть расширение для загрузки SVG и растеризации его в текстуру с любым разрешением, с заменой цвета и другими замечательными функциями. Действительно работает. Например, вы можете попробовать бесплатную игру от автора движка.

Примечание. Этот движок лучше всего подходит для полноэкранных 2D-игр и основан на представлении OpenGL 2. LGPL

person Alexey Gopachenko    schedule 23.02.2012
comment
Великий AndEngine... лучше сказать Великий багги AndEngine... - person ; 07.10.2013