如何创建内圆框颤振

时间:2021-06-12 19:11:49

标签: flutter dart border box custom-painter

如何以最简单的方式制作这样的 Box? Shape

我用 CustomPainter 和 Arcs 或 CustomClippers 尝试了很多,但都失败了。我知道使用这些技术是可能的,但我无法做到。 (如果可能,请包含代码我已经在这上面浪费了太多时间)

1 个答案:

答案 0 :(得分:1)

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
   return MaterialApp(
   title: 'Drawing Paths',
   home: Container(
     color: Colors.white,
     child: CustomPaint(
       painter: CurvePainter(),
      ),
     ),
    );
   }
  }

class CurvePainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
var paint = Paint();
paint.color = Colors.green[800];
paint.style = PaintingStyle.fill; // Change this to fill

Path path = Path();
path.moveTo(0, size.height * 0.5);
path.quadraticBezierTo(0, size.height * 0.2, 0, size.height * 0.1);
path.lineTo(size.width, size.height * 0.1);
path.lineTo(size.width, size.height * 0.5);
path.quadraticBezierTo(
    size.width * 0.5, size.height * 0.25, 0, size.height * 0.5);
path.close();

canvas.drawPath(path, paint);
}

 @override
 bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}