Flutter SVG 렌더링
내 flutter 애플리케이션에 SVG 소스가있는 이미지를 추가해 보았습니다.
new AssetImage("assets/images/candle.svg"))
하지만 시각적 인 피드백을받지 못했습니다. Flutter에서 SVG 그림을 어떻게 렌더링 할 수 있습니까?
Flutter는 현재 SVG를 지원하지 않습니다. 업데이트는 1831 호 를 따르십시오 .
벡터 드로잉이 절대적으로 필요한 경우 API를 사용하여 그리는 방법의 예로 Flutter 로고 위젯 을 Canvas
보거나 네이티브 측에서 이미지를 래스터 화하여 Flutter에 비트 맵으로 전달할 수 있지만, 현재로서는 가장 좋은 방법은 다음과 같습니다. 고해상도 래스터 화 된 자산 이미지를 포함합니다.
글꼴은 많은 경우에 훌륭한 옵션입니다.
캔버스에 SVG를 렌더링하는 라이브러리 작업을 해왔습니다. 여기에서 사용할 수 있습니다. https://github.com/dnfield/flutter_svg
현재 API는 다음과 같습니다.
new SvgPicture.asset('asset_name.svg')
asset_name.svg를 렌더링합니다 (예 : a SizedBox
). 당신은 또한 지정할 수 있습니다 color
및 blendMode
자산 염색에 대한 ..
이제 pub에서 사용할 수 있으며 최소 Flutter 버전 0.3.6에서 작동합니다. 모든 경우는 아니지만 많은 경우를 처리합니다. 업데이트 및 파일 문제는 GitHub 저장소를 참조하세요.
Colin Jackson이 참조한 원래 GitHub 문제는 실제로 Flutter의 SVG에 주로 초점을 맞추려는 것이 아닙니다. 여기에 또 다른 문제를 열었습니다 : https://github.com/flutter/flutter/issues/15501
Flutter 커뮤니티의 개발자는 svg 파일을 처리하기 위해 lib를 만들었습니다. 우리는 그것을 다음과 같이 사용할 수 있습니다.
new SvgPicture.asset(
'assets/images/candle.svg',
height: 20.0,
width: 20.0,
allowDrawingOutsideViewBox: true,
),
현재 해결 방법은 글꼴을 사용하는 것입니다.
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');
### 교체 예 : (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,
)
),
],
)
플레어를 사용하여 애니메이션을 만들고 .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 방문
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
Write flutter pub get in terminal to install the package
Then add the package namespace in the page where you want to show your svg image.
import 'package:flutter_svg/flutter_svg.dart';
then add bellow codes to show svg in your app screen
SvgPicture.asset(
'assets/Share and collect 1.svg',
height: 280,
width: 280,
color: Colors.red
),
ReferenceURL : https://stackoverflow.com/questions/44087400/flutter-svg-rendering
'IT TIP' 카테고리의 다른 글
'\ 0'과 NULL을 같은 의미로 사용할 수 있습니까? (0) | 2021.01.06 |
---|---|
목록을 Pandas 데이터 프레임 열로 변환 (0) | 2021.01.06 |
레지스터 대 스택 (0) | 2021.01.06 |
설정 HTTP는 PHP 및 Apache를 사용하여 헤더를 만료합니다. (0) | 2021.01.06 |
Winform에서 TextBox로 Ctrl + A를 허용하려면 어떻게해야합니까? (0) | 2021.01.05 |