【发布时间】:2020-01-12 10:08:35
【问题描述】:
我有这样的事情:
CustomPaint(
painter: CurvePainter(),
)
在这堂课上我正在画画:
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import './myState.dart';
import './models/mode.dart';
final String rawSvg = '''<svg viewBox="...">...</svg>''';
class CurvePainter extends CustomPainter {
MyState _myState;
DrawableRoot svgRoot;
CurvePainter(MyState myState) {
this._myState = myState;
this.loadAsset();
}
void loadAsset() async {
this.svgRoot = await svg.fromSvgString(rawSvg, rawSvg);// The canvas that is your board.
}
@override
void paint (Canvas canvas, Size size) {
canvas.translate(_myState.translateX, _myState.translateY);
if(this.svgRoot != null){
svgRoot.scaleCanvasToViewBox(canvas, size);
svgRoot.clipCanvasToViewBox(canvas);
// svgRoot.draw(canvas, size);
}
}
有人知道如何在paint方法中绘制SVG吗? 我找到了这个库 https://pub.dev/packages/flutter_svg#-readme-tab- 。 使用我的代码出现错误:未处理的异常:状态不佳:viewBox 元素必须为 4 个元素长
如果我可以缩放和旋转画布内的 svg,我会很好。但这是可选的。
【问题讨论】: