2010-06-03 12 views
68

Me pregunto cómo el dibujo vectorial en Android con la clase Shape puede parecerse a otro estándar de dibujo vectorial.Forma de SVG a Android

Dado que Shape es Drawable, y los Drawables generalmente se definen como XML, suena muy parecido a los comandos de dibujo vectorial en SVG.

Mi pregunta es esta: ¿Alguien ha creado una transformación XSLT u otro mecanismo para convertir una descripción de dibujo SVG en formas de Android?

+0

También estoy buscando algo como esto y estoy bastante desconcertado por qué esto no se implementa jet. Como mencionaste, la transformación simple de los comandos de dibujo sería suficiente (al menos para un subconjunto de SVG). Incluso he hecho esto a veces manualmente para formas muy simples (definir fondos de botones con degradado como este es genial) y estoy más o menos despistado acerca de las particularidades de SVG. – PSIXO

+4

Gran pregunta, llamada incorrecta para cerrarla. Creo que es una idea fantástica tener un convertidor de SVG a Shape. Puedo escribir uno, pero odio XSLT, así que probablemente lo haga usando C# o supongo que debería ser Java. –

+1

Le sugiero que use VectorDrawable. La mejor solución que encontré es la lib de BetterVectorDrawable junto con el convertidor de SVG a VectorDrawable. ** BetterVectorDrawable ** es la implementación VectorDrawable para Android 4.0+ con comportamiento de retroceso configurable en Android 5.0+. ** SVG to VectorDrawable Converter ** es el convertidor por lotes de imágenes SVG a archivos de recursos VectorDrawable XML de Android. Versión en línea: http: //a-student.github.io/SvgToVectorDrawableConverter.Web/ –

Respuesta

6

Lo más parecido que pude encontrar fue svg4mobile.

Si bien no creo que haga transformaciones a Drawables XML, lee el svg y hace las llamadas apropiadas a las clases Drawable.

11

Bueno, no exactamente. Pero sí he portado libsvg a android, lo que le permite cargar archivos SVG y trazarlos en un Canvas.

Por favor, echa un vistazo a:

https://launchpad.net/libsvg-android

+0

¡El sitio web dice que tienes que descargar usando bazar, lo suficientemente simple! –

+5

¡Si no fuera GPL! Solo es bueno para el software gratuito, solo para que sepa –

+0

@AntonP acaba de probar su lib con una imagen creada con inkscape, alrededor de 300kb. Eso no puede representar: error de falta de memoria :)) –

2

Además de las 2 bibliotecas GPL mencionadas, existe una biblioteca comercial llamada TinyLine que implementa el subconjunto SVG Tiny, que aunque es más limitado puede ser una mejor opción de licencia, si desea crear una aplicación no GPL.

2

la gran AndEngine tiene una extensión de SVG carga y rasterizar en la textura con cualquier resoluc ion, con reemplazo de color y otras excelentes características. Realmente funciona Por ejemplo, puede probar a free game por el autor del motor.

Nota: El motor más adecuado para juegos 2D de pantalla completa y se basa en la vista OpenGL 2. LGPL

+0

"El gran AndEngine ..." mejor diga "El gran Buggy AndEngine ... " –