2010-06-03 11 views
68

Ich frage mich, wie Vektorzeichnung in Android mit der Shape Klasse kann ein anderer Vektor Zeichnung Standard ähneln.SVG zu Android Shape

Seit Shape ist ein Drawable, und Drawables sind in der Regel als XML definiert, es klingt viel wie die Vektorzeichnung Befehle in SVG.

Meine Frage ist das: Hat jemand eine XSLT-Transformation oder einen anderen Mechanismus zum Konvertieren einer SVG-Zeichnung Beschreibung in Android Shapes erstellt?

+0

Ich bin auch auf der Suche nach so etwas und bin ziemlich verwirrt, warum dies nicht Jet implementiert ist. Wie Sie erwähnt haben, wäre eine einfache Transformation von Zeichnungsbefehlen ausreichend (zumindest für eine Teilmenge von SVG). Ich habe das sogar manchmal manuell für sehr einfache Formen gemacht (das Definieren von Button-Hintergründen mit einem Gradienten wie diesem ist großartig) und ich bin mehr oder weniger ratlos bezüglich SVG-Besonderheiten. – PSIXO

+4

Große Frage, falscher Anruf, um es zu schließen. Ich denke, es ist eine fantastische Idee, einen Konverter von SVG zu Shape zu haben. Ich könnte einen schreiben, aber ich hasse XSLT, also würde ich es wahrscheinlich mit C# tun oder ich denke, es sollte Java sein. –

+1

Ich würde vorschlagen, Sie VectorDrawable verwenden. Die beste Lösung, die ich gefunden habe, ist die BetterVectorDrawable-Bibliothek zusammen mit dem SVG zu VectorDrawable Converter. ** BetterVectorDrawable ** ist die VectorDrawable-Implementierung für Android 4.0 und höher mit konfigurierbarem Fallback-Verhalten auf Android 5.0 und höher. ** SVG to VectorDrawable Converter ** ist der Batch-Konverter von SVG-Bildern zu Android VectorDrawable XML-Ressourcen-Dateien. Online-Version: http: //a-student.github.io/SvgToVectorDrawableConverter.Web/ –

Antwort

6

Die nächste Sache, die ich finden konnte, war svg4mobile.

Während ich glaube nicht, dass es Transformationen zu Drawables XML tut, liest es die Svg und die entsprechenden Aufrufe an die Drawable-Klassen.

11

Nun, nicht genau. Aber ich habe libsvg nach android portiert, was es ermöglicht, SVG-Dateien zu laden und sie in Canvas zu plotten.

Bitte beachten Sie auch:

https://launchpad.net/libsvg-android

+0

Website sagt, dass Sie mit Basar herunterladen müssen, einfach genug! –

+5

Wenn es nur nicht GPL wäre! Nur gut für Freie Software, nur so dass Sie wissen, –

+0

@AntonP nur versucht, Sie mit einem Bild mit Inkscape lib erstellt, etwa 300kb. Das kann nicht rendern: out of memory error :)) –

2

Neben den genannten 2 GPL-Bibliotheken gibt es eine kommerzielle Bibliothek mit der Bezeichnung TinyLine, die die SVG-Tiny-Untergruppe implementiert, die zwar eine bessere Lizenzierung bietet, jedoch eine bessere Lösung darstellt, wenn Sie eine nicht GPL-basierte Anwendung erstellen möchten.

2

der große AndEngine hat eine Erweiterung für das Laden SVG und Rastern es in die Textur mit jedem resolut Ion, mit Farbaustausch und anderen großartigen Funktionen. Funktioniert wirklich. Zum Beispiel können Sie versuchen a free game von Engine Autor.

Hinweis: Der Motor eignet sich am besten für Vollbild-2D-Spiele und basiert auf der OpenGL 2-Ansicht. LGPL

+0

"Die große AndEngine ..." besser sagen "The Great Buggy AndEngine ... " –