Flutter SVG rendering

j'ai essayé d'ajouter une image avec une source SVG à mon application flutter.

new AssetImage("assets/images/candle.svg"))

Mais je n'ai aucun retour visuel. Comment rendre une image SVG dans Flutter?

22
demandé sur Arash 2017-05-20 18:01:38

4 réponses

Flutter ne supporte pas actuellement SVG. Suivez problème de 1831 pour les mises à jour.

si vous avez absolument besoin d'un dessin vectoriel, vous pouvez voir le flutter logo widget comme exemple pour dessiner en utilisant le Canvas API, ou rastérize votre image sur le côté natif et le passer à Flutter comme un bitmap, mais pour l'instant votre meilleur pari est probablement d'intégrer des images d'actifs rastérizées à haute résolution.

17
répondu Collin Jackson 2017-06-13 20:01:58

le travail autour pour le moment est d'utiliser des polices

https://icomoon.io/

  fonts:
   - family: icomoon
     fonts:
       - asset: assets/fonts/icomoon.ttf
  static const IconData TabBarHome= const IconData(0xe906, fontFamily: 'icomoon');
  static const IconData TabBarExplore= const IconData(0xe902, fontFamily: 'icomoon');

Remplacer le ### eg (906)

8
répondu Victor Tong 2018-04-26 05:46:31

Flutter a fait une nouvelle lib flutter_svg: ^0.5.0` pour gérer les fichiers svg. Nous pouvons l'utiliser comme

new SvgPicture.asset(
  'assets/images/candle.svg',
  height: 20.0,
  width: 20.0,
  allowDrawingOutsideViewBox: true,
),
8
répondu Sunil 2018-08-17 09:54:14

Polices sont une excellente option pour beaucoup de cas.

j'ai travaillé sur une bibliothèque pour rendre les SVG sur une toile, disponible ici: https://github.com/dnfield/flutter_svg

L'API de plein droit maintenant ressemblerait à quelque chose comme

new SvgPicture.asset('asset_name.svg')

pour rendre asset_name.svg (dimensionné à son parent, par exemple un SizedBox). Vous pouvez également spécifier un color et blendMode pour avoir teinté l'atout..

il est maintenant disponible sur pub et fonctionne avec un minimum de Flutter version 0.3.6. Il s'occupe d'un tas de cas mais pas de tout - consultez le GitHub repo pour les mises à jour et pour classer les problèmes.

L'original GitHub question référencé par Colin Jackson est vraiment pas destiné à être principalement axé sur les SVG en Flottement. J'ai ouvert un autre problème ici: https://github.com/flutter/flutter/issues/15501

7
répondu Dan Field 2018-06-04 18:38:40