spróbuj użyć prostego w użyciu flutter_svg 0.14.0 pakietu, który działa jak urok więcej informacji tutaj pub.dev/packages/flutter_svg , wszystko dzięki temu facetowi github.com/dnfield, który przeniósł logikę renderowania svg chrome do darta
maheshmnj
Odpowiedzi:
63
Flutter obecnie nie obsługuje formatu SVG. Śledź wydanie 1831, aby uzyskać aktualizacje.
Jeśli absolutnie potrzebujesz rysowania wektorowego, możesz zobaczyć widżet Flutter Logo jako przykład rysowania za pomocą Canvasinterfejsu API lub rasteryzować obraz po stronie natywnej i przekazać go Flutterowi jako bitmapę, ale na razie najlepszym rozwiązaniem jest prawdopodobnie osadzać rasteryzowane obrazy zasobów o wysokiej rozdzielczości.
do renderowania nazwa_zasobu.svg (dopasowana do jego rodzica, np. a SizedBox). Możesz również określić a colori blendModedla zabarwienia zasobu.
Jest teraz dostępny w pubie i działa z minimum Flutter w wersji 0.3.6. Obsługuje wiele przypadków, ale nie wszystko - zobacz repozytorium GitHub, aby uzyskać aktualizacje i zgłosić problemy.
Oryginalny problem z GitHubem, do którego odwołuje się Colin Jackson, tak naprawdę nie ma skupiać się głównie na SVG we Flutterze. W tym celu otworzyłem kolejny numer: https://github.com/flutter/flutter/issues/15501
Trochę poza tematem, ale czy to obsługuje iOS? O ile wiem, iOS obsługuje wektory w formacie PDF, więc jestem po prostu ciekawy, czy można tego użyć do renderowania wektorów również na iOS
MRainzo
3
Powinien działać na każdej platformie obsługiwanej przez Flutter. Wszystko jest napisane w Dart przy użyciu Canvasmetod.
Dan Field
1
dlaczego nie obsługuje najnowszej stabilnej flutter zamiast podglądu
minigeek
Cześć Dan, Czy możesz również dodać obsługę - dart: svg library - api.dart.dev/stable/2.9.2/dart-svg/dart-svg-library.html ? czy flutter obsługuje dart2? Chcę mieć wiele elementów SVGE połączonych w jeden duży serializowany ciąg, a następnie użyć Twojej biblioteki do renderowania
pliku
dart: svg jest używany z HTML i dart2js. Jest zupełnie inny niż to.
Dan Field
25
Programiści ze społeczności Flutter stworzyli bibliotekę do obsługi plików svg. Możemy go użyć jako
new SvgPicture.asset(
'assets/images/candle.svg',
height: 20.0,
width: 20.0,
allowDrawingOutsideViewBox: true,
),
flutter_svg 0.14.0
pakietu, który działa jak urok więcej informacji tutaj pub.dev/packages/flutter_svg , wszystko dzięki temu facetowi github.com/dnfield, który przeniósł logikę renderowania svg chrome do dartaOdpowiedzi:
Flutter obecnie nie obsługuje formatu SVG. Śledź wydanie 1831, aby uzyskać aktualizacje.
Jeśli absolutnie potrzebujesz rysowania wektorowego, możesz zobaczyć widżet Flutter Logo jako przykład rysowania za pomocą
Canvas
interfejsu API lub rasteryzować obraz po stronie natywnej i przekazać go Flutterowi jako bitmapę, ale na razie najlepszym rozwiązaniem jest prawdopodobnie osadzać rasteryzowane obrazy zasobów o wysokiej rozdzielczości.źródło
Czcionki są świetną opcją w wielu przypadkach.
Pracowałem nad biblioteką do renderowania SVG na płótnie, dostępną tutaj: https://github.com/dnfield/flutter_svg
API w tej chwili wyglądałoby mniej więcej tak
new SvgPicture.asset('asset_name.svg')
do renderowania nazwa_zasobu.svg (dopasowana do jego rodzica, np. a
SizedBox
). Możesz również określić acolor
iblendMode
dla zabarwienia zasobu.Jest teraz dostępny w pubie i działa z minimum Flutter w wersji 0.3.6. Obsługuje wiele przypadków, ale nie wszystko - zobacz repozytorium GitHub, aby uzyskać aktualizacje i zgłosić problemy.
Oryginalny problem z GitHubem, do którego odwołuje się Colin Jackson, tak naprawdę nie ma skupiać się głównie na SVG we Flutterze. W tym celu otworzyłem kolejny numer: https://github.com/flutter/flutter/issues/15501
źródło
Canvas
metod.Programiści ze społeczności Flutter stworzyli bibliotekę do obsługi plików svg. Możemy go użyć jako
new SvgPicture.asset( 'assets/images/candle.svg', height: 20.0, width: 20.0, allowDrawingOutsideViewBox: true, ),
Znalazłem tutaj mały przykład implementacji SVG .
źródło
Obecnie rozwiązaniem jest używanie czcionek
https://icomoon.io/
Użytkowanie
static const IconData TabBarHome= const IconData(0xe906, fontFamily: 'icomoon'); static const IconData TabBarExplore= const IconData(0xe902, fontFamily: 'icomoon');
Zastąp ###, np. (906)
źródło
Możesz wykonać poniższe kroki
- odwiedź http://fluttericon.com
- prześlij swoje ikony SVG
- kliknij przycisk pobierania
- otrzymasz dwa pliki
1. iconname.dart
2. iconname.ttf plik czcionki
- użyj tego pliku w programie flutter & import iconname.dart
źródło
Możesz użyć flary do tworzenia animacji i po prostu zaimportować .flr jako zasób
import 'package:flare_flutter/flare_actor.dart'; class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return new FlareActor("assets/Filip.flr", alignment:Alignment.center, fit:BoxFit.contain, animation:"idle"); } }
odwiedź stronę flare_flutter https://pub.dev/packages/flare_flutter
źródło
Możesz użyć tej biblioteki do renderowania obrazów SVG - https://pub.dev/packages/flutter_svg
Przykład -
Container( child: SvgPicture.asset("assets/images/yourImage.svg") )
źródło