IT TIP

Flutter SVG 렌더링

itqueen 2021. 1. 6. 20:33
반응형

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). 당신은 또한 지정할 수 있습니다 colorblendMode자산 염색에 대한 ..

이제 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,
),

여기 에서 SVG 구현 의 작은 예를 찾았 습니다 .


현재 해결 방법은 글꼴을 사용하는 것입니다.

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');

### 교체 예 : (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

반응형