svg_pic_editor 2.0.0 copy "svg_pic_editor: ^2.0.0" to clipboard
svg_pic_editor: ^2.0.0 copied to clipboard

A Flutter plugin for SVG editing and manipulation.

Para deixar o README mais detalhado e preciso, considerando o uso do querySelector e exemplos de animação aplicados, aqui estão os ajustes e exemplos adicionais:


SvgPicEditor #

SvgPicEditor é um widget Flutter que permite carregar e modificar arquivos SVG de várias fontes, como assets locais, strings SVG ou URLs. Ele permite modificar elementos específicos do SVG usando a classe ElementSvg, facilitando a alteração de propriedades como cor, opacidade, transformação, entre outros.

Tabela de Conteúdo #

Instalação #

Para adicionar SvgPicEditor ao seu projeto Flutter, inclua o seguinte código em seu pubspec.yaml:

dependencies:
  svg_pic_editor: ^1.0.0

Ou use o comando:

flutter pub add svg_pic_editor

Uso #

Importação #

Para usar o SvgPicEditor, importe o pacote no arquivo Dart onde você deseja utilizá-lo:

import 'package:svg_pic_editor/svg_pic_editor.dart';

Exemplo Simples #

Aqui está um exemplo básico de como usar o SvgPicEditor dentro de um widget Flutter:

import 'package:flutter/material.dart';
import 'package:svg_pic_editor/svg_pic_editor.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('SvgPicEditor Exemplo')),
        body: Center(
          child: SvgPicEditor.asset(
            'assets/example.svg',
            modifications: [
              ElementSvg(
                querySelector: '#element1',
                fillColor: Colors.red,
              ),
            ],
            width: 200.0,
            height: 200.0,
            fit: BoxFit.contain,
          ),
        ),
      ),
    );
  }
}

Este exemplo carrega um arquivo SVG de um asset local e altera a cor de um elemento SVG com o ID element1 para vermelho.

Construtores #

SvgPicEditor possui três construtores principais para diferentes fontes SVG:

SvgPicEditor.asset

Carrega um SVG de um asset local:

SvgPicEditor.asset(
  'assets/your_file.svg',
  package: 'your_package',
  modifications: [/* Lista de ElementSvg */],
  width: 100.0,
  height: 100.0,
  fit: BoxFit.contain,
  querySelector: '#seuID',
  color: Colors.red,
);

SvgPicEditor.network

Carrega um SVG de uma URL:

SvgPicEditor.network(
  'https://example.com/your/svg.svg',
  modifications: [/* Lista de ElementSvg */],
  width: 100.0,
  height: 100.0,
  fit: BoxFit.contain,
  querySelector: '.suaClasse',
  color: Colors.red,
);

SvgPicEditor.string

Carrega um SVG de uma string SVG:

SvgPicEditor.string(
  '<svg>...</svg>',
  modifications: [/* Lista de ElementSvg */],
  width: 100.0,
  height: 100.0,
  fit: BoxFit.contain,
  querySelector: '[atributo="valor"]',
  color: Colors.red,
);

Propriedades do Widget SvgPicEditor #

Principais propriedades do SvgPicEditor:

  • assetName (String?): Nome do asset contendo o SVG.
  • svgString (String?): String representando o conteúdo do SVG.
  • svgUrl (String?): URL do SVG a ser carregado.
  • package (String?): Nome do pacote contendo o asset.
  • modifications (List<ElementSvg>?): Lista de modificações a serem aplicadas ao SVG.
  • width (double?): Largura do widget.
  • height (double?): Altura do widget.
  • fit (BoxFit): Como o SVG deve se ajustar ao espaço disponível.
  • querySelector (String?): Um seletor de consulta para escolher elementos específicos.
  • color (Color?): Cor a ser aplicada ao SVG.

Exemplo de Modificação #

A classe ElementSvg permite realizar modificações específicas nos elementos SVG, como cor, opacidade e transformação.

class ElementSvg {
  final String? id;
  final Color? fillColor;
  final Color? strokeColor;
  final double? strokeWidth;
  final double? opacity;
  final String? transform;
  final String? querySelector;
  final String? cssInjector;

  ElementSvg({
    this.id,
    this.fillColor,
    this.strokeColor,
    this.strokeWidth,
    this.opacity,
    this.transform,
    this.querySelector,
    this.cssInjector,
  });
}

Exemplos de Modificação Usando querySelector #

Selecionando Elementos Específicos com querySelector

SvgPicEditor.asset(
  'assets/example.svg',
  modifications: [
    ElementSvg(
      querySelector: '#element1',
      fillColor: Colors.red,
    ),
    ElementSvg(
      querySelector: '.class1',
      strokeColor: Colors.blue,
      strokeWidth: 3.0,
    ),
  ],
  width: 200.0,
  height: 200.0,
  fit: BoxFit.contain,
);

Modificando Elementos com Atributos Específicos Usando querySelector

SvgPicEditor.network(
  'https://example.com/your/svg.svg',
  modifications: [
    ElementSvg(
      querySelector: '[data-type="especial"]',
      fillColor: Colors.green,
    ),
    ElementSvg(
      querySelector: '[stroke="black"]',
      strokeColor: Colors.yellow,
    ),
  ],
  width: 300.0,
  height: 300.0,
  fit: BoxFit.cover,
);

Exemplo de Animações com SvgPicEditor #

Abaixo está um exemplo de como usar as animações customizadas para o SvgPicEditor:

SvgPicEditor.asset(
  'assets/example.svg',
  modifications: [
    ElementSvg(
      querySelector: 'rect#retangulo',
      fillColor: Colors.orange,
    ),
  ],
).shake(
  vsync: this,
  duration: Duration(milliseconds: 500),
  offset: 10.0,
  isInfinite: true,
);

Neste exemplo, o elemento selecionado é animado com o efeito de shake, o que adiciona um movimento de oscilação horizontal.


30
likes
0
points
109
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for SVG editing and manipulation.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_svg, http, plugin_platform_interface, shimmer, xml

More

Packages that depend on svg_pic_editor

Packages that implement svg_pic_editor