import 'package:flutter/cupertino.dart';
class CenterTransparentCircularMask extends CustomClipper<Path> {
final double radius;
CenterTransparentCircularMask(this.radius);
@override
Path getClip(Size size) {
final path = Path()
..addRect(Rect.fromLTWH(0, 0, size.width, size.height)) // 初始矩形
..addOval(Rect.fromCircle(center: Offset(size.width / 2, size.height / 2), radius: this.radius)); // 圆形洞口
return path..fillType = PathFillType.evenOdd; // 设置填充规则
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) {
return false;
}
}
Container(
child: ClipPath(
clipper: CenterTransparentCircularMask(23.0), // 自定义的裁剪器
child: Container(
color: Colors.black.withOpacity(0.5),
width: screenWidth,//遮罩宽
height: playerHeight,//遮罩高
),
),
),