Solución:
Las fuentes son una gran opción para muchos casos.
He estado trabajando en una biblioteca para renderizar SVG en un lienzo, disponible aquí: https://github.com/dnfield/flutter_svg
La API a partir de ahora se vería algo así como
new SvgPicture.asset('asset_name.svg')
para representar asset_name.svg (con el tamaño de su padre, por ejemplo, un SizedBox
). También puede especificar un color
y blendMode
para teñir el activo ..
Ahora está disponible en pub y funciona como mínimo con la versión 0.3.6 de Flutter. Maneja una gran cantidad de casos, pero no todos: consulte el repositorio de GitHub para obtener actualizaciones y problemas de archivos.
El problema original de GitHub al que hace referencia Colin Jackson en realidad no está destinado a centrarse principalmente en SVG en Flutter. Abrí otro problema aquí para eso: https://github.com/flutter/flutter/issues/15501
Flutter actualmente no es compatible con SVG. Siga el número 1831 para obtener actualizaciones.
Si es absolutamente necesario un dibujo vectorial, puede ver el widget del logotipo de Flutter como un ejemplo de cómo dibujar usando el Canvas
API, o rasteriza tu imagen en el lado nativo y pásala a Flutter como un mapa de bits, pero por ahora tu mejor opción es probablemente incrustar imágenes de activos rasterizadas de alta resolución.
Los desarrolladores de la comunidad Flutter crearon una biblioteca para manejar archivos svg. Podemos usarlo como
new SvgPicture.asset(
'assets/images/candle.svg',
height: 20.0,
width: 20.0,
allowDrawingOutsideViewBox: true,
),
Encontré un pequeño ejemplo de implementación de SVG aquí.