Флаттер клип PNG с анимацией - PullRequest
0 голосов
/ 04 декабря 2018

Я очень новичок во Флаттере и столкнулся с проблемой.Я должен обрезать PNG на основе данного значения высоты.Это прекрасно работает с этим классом, который я сделал:

class ScaleClipper extends CustomClipper<Rect> {
    double value;

    @override
    Rect getClip(Size size) {
        Rect rect = Rect.fromLTWH(0.0, 0.0 + value, size.width, size.height);
        return rect;
    }

    @override
    bool shouldReclip(ScaleClipper oldClipper) {
        return true;
    }

    ScaleClipper(double value) {
        this.value = value;
    }
}

Теперь я хочу анимировать изменения в изображении.Я попытался обернуть это в виджеты, упомянутые здесь: https://flutter.io/docs/development/ui/widgets/animation Но я не получил его для правильной работы.Это виджет, в котором я отображаю изображение:

ClipRect(
            clipper: ScaleClipper(value),
            child: Container(
                margin: new EdgeInsets.only(
                    left: 30.0, top: 30.0, right: 20.0, bottom: 30.0),
                width: 150.0,
                height: 420.0,
                decoration: BoxDecoration(
                    image: DecorationImage(
                        image: AssetImage("images/image.png"),
                        fit: BoxFit.contain))),
          ),

Нужно ли мне изменить подход к проблеме или можно анимировать вырезку изображения?

1 Ответ

0 голосов
/ 04 декабря 2018

Я нашел ответ для будущих новичков.Вы можете просто использовать простую анимацию анимации, как это

controller = AnimationController(
    duration: const Duration(milliseconds: 1000), vsync: this);
animation = Tween(begin: 0.0, end: 1.0).animate(controller)
  ..addListener(() {
    setState(() {
      fracturedValue = desiredClipValue * animation.value;
    });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...