Soy bastante nuevo en la creación de imágenes vectoriales. Empecé a aprender cómo crearlos porque necesito algunos íconos personalizados para una aplicación de Android en la que estoy trabajando actualmente. Y aquí empieza el problema. Estoy creando los íconos usando Inkscape y cuando trato de convertirlos en un VectorDrawable usando Android Studio, devuelve un error sobre no admitir ciertas cosas:
ERROR@ line 22 <defs> is not supported
WARNING@ line 139 We don't scale the stroke width!
WARNING@ line 144 We don't scale the stroke width!
WARNING@ line 150 We don't scale the stroke width!
WARNING@ line 156 We don't scale the stroke width!
WARNING@ line 162 We don't scale the stroke width!
WARNING@ line 168 We don't scale the stroke width!
WARNING@ line 174 We don't scale the stroke width!
Primero intenté convertir de alguna manera la ruta en un objeto dentro de Inkscape, pero esto no funcionó. Luego busqué algunas soluciones en la web y encontré el siguiente sitio web: http://inloop.github.io/svg2android/ Allí pude convertir el ícono pero ahora solo puedo usarlo Android 7.0 y superior porque usé el atributo ' regla de relleno: par impar'.
Ahora aquí está mi pregunta: ¿Cómo asegurarme de que solo uso los atributos adecuados al crear un ícono y cómo puedo hacer que mi ícono funcione en Android?
Si desea seguir mi intento de solucionar el problema, aquí puede descargar mi archivo SVG: https://dl.dropboxusercontent.com/u/213285061/Foren/Biologie_Icon.svg
Gracias por cada consejo.
Guardar como un "SVG simple" en Inkscape.
Nota: A partir de Inkscape 0.91, si guarda como "SVG simple" y luego simplemente hace "Guardar" normal, se guardará nuevamente como un SVG de Inkscape. Por lo tanto, deberá guardar y seleccionar explícitamente SVG simple cada vez.
Pregunta relacionada sobre la conversión de SVG a VectorDrawable: XML de exportación de Inkscape para el directorio de recursos dibujables de Android
El formato de guardado predeterminado de Inkscape es "Inkscape SVG", que es un archivo SVG normal que cumple con el estándar SVG 1.1, junto con metadatos e información adicional utilizada por Inkscape en el espacio de inkscape
nombres.
Eso es SVG perfectamente válido, y la mayoría de los programas de renderizado, como los navegadores, no tienen problemas con él. Parece que su flujo de trabajo para la transformación de SVG a VectorDrawable XML se está bloqueando en ese código específico de Inkscape (aunque <defs>
es un SVG vainilla válido).
Guardar como "SVG simple" elimina todos esos datos adicionales y cualquier característica que no esté en el estándar SVG. Esto resultará en una mejor compatibilidad con otros programas (como el suyo), pero puede perder alguna información, dependiendo del dibujo.
Con mucho, la función SVG no estándar más común que la gente usa es un flujo de texto. Estos se crean arrastrando para crear un cuadro de texto (en lugar de simplemente hacer clic). El ajuste de texto no es compatible con SVG; muchos programas simplemente ignorarán el texto.
En el menú Texto , hay una opción en Inkscape para convertir un flujo de texto en un objeto de texto SVG normal.
En la mayoría de los casos, el elemento infractor se puede convertir simplemente en una ruta.
Además de usar "SVG simple", hay algunas otras características para ajustar el árbol SVG en la salida de Inkscape.
<marker>
nodos.
garabateador
Steve2955
garabateador
garabateador
inkscape:
nombres. Es posible que Android Studio se tropiece con los datos de espacios de nombres utilizados por Inkscape en el formato de guardado predeterminado.Steve2955
garabateador
Alektas