2010-06-03 4 views
68

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

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

Мой вопрос заключается в следующем: Кто-нибудь создал преобразование XSLT или другой механизм для преобразования описания чертежей SVG в Android Shapes?

+0

Я также ищу что-то подобное и довольно озадачен, почему это не реализовано. Как вы упомянули, простое преобразование команд рисования было бы достаточно (по крайней мере для подмножества SVG). Я даже делал это иногда вручную для очень простых фигур (определение фоновых кнопок с градиентом, как это здорово), и я более или менее не знаю о спецификациях SVG. – PSIXO

+4

Большой вопрос, неправильный звонок, чтобы закрыть его. Я думаю, что это фантастическая идея иметь конвертер SVG в Shape. Я могу написать один, но я ненавижу XSLT, поэтому я, вероятно, сделаю это с помощью C#, или я предполагаю, что это должна быть Java. –

+1

Я предлагаю вам использовать VectorDrawable. Лучшее решение, которое я нашел, это BetterVectorDrawable lib вместе с SVG to VectorDrawable Converter. ** BetterVectorDrawable ** - это реализация VectorDrawable для Android 4.0+ с настраиваемым обратным снижением на Android 5.0+. ** SVG to VectorDrawable Converter ** - пакетный конвертер SVG-изображений в векторные файлы ресурсов XML VectorDrawable. Онлайн-версия: http: //a-student.github.io/SvgToVectorDrawableConverter.Web/ –

ответ

6

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

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

11

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

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

https://launchpad.net/libsvg-android

+0

Веб-сайт говорит, что вам нужно скачать с базара, достаточно просто! –

+5

Если бы это был не GPL! Только хорошо для бесплатного программного обеспечения, так что вы знаете –

+0

@AntonP просто попробовал вас с изображением, созданным с помощью inkscape, около 300 КБ. Это не может сделать: из-за ошибки памяти :)) – 2013-10-06 14:58:58

2

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

2

В настоящее время некоторые люди, включая меня, работают над ним независимо.
Вы можете найти рабочее решение в этих статьях:
    Android. ImageView with SVG Support.
    Android ImageView and Drawable with SVG support

+0

попробовал оба не может скомпилировать его часть ndk, было бы совершенно неожиданно, если бы вы обновили настройки проекта – 2013-10-06 15:01:55

2

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

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

+0

«Великий AndEngine ...» лучше сказать «Великий багги AndEngine ... " – 2013-10-07 19:09:03