Flutter: масштабирование холста в определенных местах

Я пытаюсь сделать что-то вроде увеличительного стекла на Custom Painter. Пока я могу использовать Backdropfilter с масштабированием матрицы imagefilter, как показано ниже:

      BackdropFilter(
  filter: ImageFilter.matrix(matrix),
  child : CustomFocusCircle()
),

Хотя он работает со стеком и позиционированием, мне интересно, можно ли создать его на холсте. Я пробовал что-то вроде этого, и это сработало.

      canvas.drawAtlas(
              sourceImage,
              [
                /* Identity transform */
                RSTransform.fromComponents(
                  rotation: 0.0,
                  scale: 1,
                  anchorX: 0,
                  anchorY: 0,
                  translateX: 0,
                  translateY: 0,
                )
              ],
              [ 
                Rect.fromCircle(
                    center: Offset(size.width / 2, size.height / 2),
                    radius: 200),
                
              ],
              [],
              null,
              null,
              Paint());

Но я до сих пор не могу понять, как сделать круглый вырез вместо прямоугольного.

1 ответ

Вы пробовали этот пакет https://pub.dev/packages/magnifying_glass ? вы можете попробовать этот пакет, я надеюсь, что это может помочь вам.

Другие вопросы по тегам