如何在 Flutter 中创建带有圆角的自定义模糊形状
How to create a custom blured shape with rounded corners in Flutter
我想绘制一个类似于下图标记区域的自定义形状。有没有办法用模糊效果剪裁这个自定义形状,然后指定角的半径?
这是
full example
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;
}
- 使用 quadraticBezierTo
创建所有圆角
- 在 ClipPath 中创建了一个容器
- 容器颜色使用 Colors.white70
我使用这个库,它有助于从 svg
文件构建形状:
https://fluttershapemaker.com/
您只需将形状导出为 svg
并粘贴到那里
我想绘制一个类似于下图标记区域的自定义形状。有没有办法用模糊效果剪裁这个自定义形状,然后指定角的半径?
这是 full example
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;
}
- 使用 quadraticBezierTo 创建所有圆角
- 在 ClipPath 中创建了一个容器
- 容器颜色使用 Colors.white70
我使用这个库,它有助于从 svg
文件构建形状:
https://fluttershapemaker.com/
您只需将形状导出为 svg
并粘贴到那里