0

当我试图用鼠标拖动图标时,单击图标时。例如,当单击圆形按钮图标时,鼠标会用它拖动圆圈。

但这并没有发生,所以我尝试通过图像来执行此操作,因此单击按钮图标,鼠标拖动使用 drawCircle 类在画布上扩展 CustomPainter 绘制的圆圈。它正在发生,我尝试通过用鼠标拖动图像来进行相同的操作,即,单击它会拖动图标的图像。

它没有发生并且看不到图像。但是在控制台中它说图像加载并正常运行有更好的方法吗?

这是我的代码: - 画家类文件

    class ImagePainter extends CustomPainter {
      final ui.Image image;
      late Offset offset;
      ImagePainter(this.image);
    
      @override
      void paint(Canvas canvas, Size size) {
        final paint = Paint();
    
        canvas.drawImage(image, offset, paint);
      }
    
      @override
      bool shouldRepaint(CustomPainter oldDelegate) => false;
    }
    
    
Class where above class is used:-

    class ImageController implements ToolController {
      final SketchController _sketchController;
      final OnStateUpdated _onStateUpdated;
      ui.Image? image;
      ImageController(this._sketchController, this._onStateUpdated) {
        loadImage('lib/assets/spot.jpeg');
       
      }
    
      Future loadImage(String path) async {
        try{
          print("begin load image ${path}");
          final data = await rootBundle.load(path);
          print("begin load image1 ");
          final bytes = data.buffer.asUint8List();
          print("begin load image2 ");
          final image = await decodeImageFromList(bytes);
          print("begin load image3 ");
          this.image = image;
          print("Image loaded");    
        }
        catch(e){
          print(e);
        }
    
    
      }
    
      @override 
     
      ImagePainter? imagePainter;
    
      int nCurrentLayerID = 0;
      
      @override
      void panStart(PointerDownEvent details) {
      
      }
    
      @override
      void panUpdate(PointerMoveEvent details) {
        
        if (image!=1) {
          imagePainter = ImagePainter(image!);
          imagePainter!.offset=details.localPosition;
        } else {
          print("ImagePainter not working");
          toolPainter = IconPainter();
4

0 回答 0