首页 > 解决方案 > Flutter customPaint 状态

问题描述

我试图允许用户使用自定义油漆在画布上绘图。使用下面的代码

List<List<Offset>> allPoints = [];

  @override
  void paint(Canvas canvas, Size size) {
    Paint paint = Paint()
      ..color = Colors.blue
      ..strokeCap = StrokeCap.round
      ..strokeWidth = 10.0;

    for (int y = 0; y <= points.length - 1; y++) {
      for (int i = 0; i < points[y].length - 1; i++) {
        if (points[y][i] != null && points[y][i + 1] != null) {
          canvas.drawLine(points[y][i], points[y][i + 1], paint);
        }
      }
    }
  }

这工作正常,除了当要绘制的点增加时,应用程序变得非常缓慢和滞后。我试图通过只绘制最近的点来纠正这个问题,同时保持已经在画布上绘制的旧点。

但是,它只绘制最近的点并删除(或替换)旧的点。

我希望能够绘制一条线,将其保存并在同一画布上绘制另一条线,而无需替换(删除)旧线。虽然仍然有旧的和新的。

标签: flutterdartcanvascustom-painting

解决方案


推荐阅读