7

我想绘制一个类似于下图标记区域的自定义形状。有没有办法用模糊效果剪辑这个自定义形状,然后指定角的半径?

这个标记的形状

4

2 回答 2

17

这是 完整的例子

在此处输入图像描述

class Customclipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    var path = new Path();
    path.lineTo(0.0, size.height - 20);
    path.quadraticBezierTo(0.0, size.height, 20.0, size.height);
    path.lineTo(size.width - 20.0, size.height);
    path.quadraticBezierTo(size.width, size.height, size.width, size.height - 20);
    path.lineTo(size.width, 50.0);
    path.quadraticBezierTo(size.width, 30.0, size.width - 20.0, 30.0);
    path.lineTo(20.0, 5.0);
    path.quadraticBezierTo(0.0, 0.0, 0.0, 20.0);
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}
  1. 使用quadraticBezierTo创建所有圆角
  2. 在 ClipPath 中创建了一个容器
  3. 使用 Colors.white70 作为容器颜色
于 2018-05-07T21:40:06.780 回答
0

我使用这个库,它有助于从svg文件构建形状: https ://fluttershapemaker.com/

您需要做的就是,将您的形状导出svg并粘贴到那里

于 2021-12-19T09:36:09.713 回答