Я попытался добавить изображение с источником SVG в мое приложение флаттера.
new AssetImage("assets/images/candle.svg"))
Но я не получал никакой визуальной обратной связи. Как сделать изображение SVG в Flutter?
Я попытался добавить изображение с источником SVG в мое приложение флаттера.
new AssetImage("assets/images/candle.svg"))
Но я не получал никакой визуальной обратной связи. Как сделать изображение SVG в Flutter?
В настоящее время Flutter не поддерживает SVG. Следуйте вопросу 1831 для обновлений.
Если вам абсолютно нужен векторный рисунок, вы можете увидеть виджет логотипа флаттера в качестве примера рисования с использованием API Canvas
или растеризуйте свое изображение на родной стороне и передайте его флаттеру в виде растрового изображения, но на данный момент лучше всего разместить встроенные изображения растрированных изображений с высоким разрешением.
Шрифты - отличный вариант для многих случаев.
Я работал над библиотекой для визуализации SVG на холсте, доступной здесь: https://github.com/dnfield/flutter_svg
API на данный момент будет выглядеть примерно так
new SvgPicture.asset('asset_name.svg')
отобразить asset_name.svg (по размеру соответствует его родителю, например, SizedBox
). Вы также можете указать color
и blendMode
для тонирования blendMode
.
Теперь он доступен в пабе и работает с минимальной версией Флаттера 0.3.6. Он обрабатывает множество случаев, но не все - см. Репозиторий GitHub для получения обновлений и проблем с файлами.
Оригинальная проблема GitHub, на которую ссылается Колин Джексон, на самом деле не предназначена для того, чтобы в первую очередь фокусироваться на SVG во Флаттере. Я открыл еще одну проблему для этого: https://github.com/flutter/flutter/issues/15501
Разработчики из сообщества Flutter создали библиотеку для обработки файлов SVG. Мы можем использовать его как
new SvgPicture.asset(
'assets/images/candle.svg',
height: 20.0,
width: 20.0,
allowDrawingOutsideViewBox: true,
),
Я нашел небольшой пример реализации SVG здесь.
Обходной путь пока что использует шрифты
fonts:
- family: icomoon
fonts:
- asset: assets/fonts/icomoon.ttf
Useage
static const IconData TabBarHome= const IconData(0xe906, fontFamily: 'icomoon');
static const IconData TabBarExplore= const IconData(0xe902, fontFamily: 'icomoon');
Заменить ### например (906)
Шаг 1:
flutter_svg: ^0.12.4
Шаг 2:
import 'package:flutter_svg/flutter_svg.dart';
Шаг 3:
SizedBox.fromSize(
child: SvgPicture.asset(
'assets/empty.svg',
),
size: Size(300.0, 400.0),
),
привет, вы можете использовать плагин "flutter_svg": https://pub.dartlang.org/packages/flutter_svg
Просто и легко, а вы можете изменить цвет SVG.
final String assetName = 'assets/up_arrow.svg';
final Widget svgIcon = new SvgPicture.asset(
assetName,
color: Colors.red,
semanticsLabel: 'A red up arrow'
);
pubspeck.yaml
dependencies:
flutter_svg: ^0.12.4
Код: стек и позиционируется, чтобы установить абсолютную позицию SVG
Stack(
children: <Widget>[
Positioned(
right: 0,
child: IconButton(
icon: SvgPicture.asset('assets/profileView/iconAjustes.svg',
height: 30,
width: 30,
color: Colors.white,
semanticsLabel: 'Ajustes Logo'
),
onPressed: _onPrefsButtonPressed,
)
),
],
)
Вы можете использовать Flare для создания анимации и просто импортировать .flr как актив
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");
}
}
посетите flare_flutter https://pub.dev/packages/flare_flutter
Я использовал http://fluttericon.com/, его легко настроить, и есть много значков, также вы можете добавить свои собственные. Наконец, он сгенерирует шрифты и дартс с иконками.
Вы можете выполнить следующие шаги
- посетить http://fluttericon.com
-загрузить иконки SVG
- нажмите на кнопку загрузки
- вы получите два файла
1. iconname.dart
2. файл шрифта iconname.ttf
- использовать этот файл в флаттере импортировать iconname.dart
Flutter не поддерживает SVG, но вы можете использовать пакет flutter_svg.
Добавьте это в ваш пакет pubspec.yaml:
dependencies:
flutter_svg:
После этого запустите flutter pub get
, чтобы получить зависимость.
А затем импортируйте его в свой класс дартс:
import 'package:flutter_svg/flutter_svg.dart';
Ссылка на пакет: https://pub.dev/packages/flutter_svg
Сначала добавьте этот пакет с последней версией в ваш файл pubspec.yaml https://pub.dev/packages/flutter_svg
как ниже
dependencies
flutter_svg: ^0.14.1
Напишите flutter pub, войдите в терминал, чтобы установить пакет
Затем добавьте пространство имен пакета на страницу, где вы хотите показать свое изображение SVG.
import 'package:flutter_svg/flutter_svg.dart';
затем добавьте следующие коды, чтобы отобразить svg на экране приложения
SvgPicture.asset(
'assets/Share and collect 1.svg',
height: 280,
width: 280,
color: Colors.red
),