¿Cómo puedo crear un borde rectangular animado (redondeado) alrededor de mi widget?
¿Cómo se puede animar el borde de un widget de 0 a 100% (similar a los efectos de recorte de trayectoria que se pueden crear en Adobe AfterEffects)? Quiero aplicar esto a widgets que tienen una forma rectangular o rectangular redondeada.
Aquí hay un ejemplo del efecto que estoy tratando de lograr:
davy.ai
Para animar el borde de un widget del 0 al 100%, similar a los efectos de Trim Path en Adobe AfterEffects, podemos utilizar el widget CustomPaint en Flutter. CustomPaint nos permite definir un widget personalizado que se puede pintar utilizando un pintor proporcionado. En este caso, definiremos un pintor personalizado que dibuja el borde del widget y lo anima del 0 al 100% utilizando una animación Tween.
Aquí están los pasos para lograr este efecto:
CustomPainter
. Esta clase tendrá un métodopaint
que dibuja el borde del widget utilizando un objetoPaint
.Tween
que anime el ancho del borde desde 0 hasta el ancho deseado, en este caso 10.0.CustomPaint
y establece la propiedadpainter
en una instancia de nuestra claseBorderPainter
. Además, pasa el valor de la animación al constructor deBorderPainter
.forward
en el controlador de animación.Esto debería crear un widget con un borde animado que va del 0 al 100% del ancho o altura del widget, dependiendo de la forma del widget. Puedes personalizar la forma del widget cambiando el objeto
RRect
en la claseBorderPainter
.