You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改自定义Clipper代码实现顶部两个圆角?

自定义Clipper实现顶部双圆角效果

这里给你两种修改方案,都能实现顶部左右两个圆角、底部直角的裁剪效果:

方案一:手动绘制路径(灵活可控)

Path getClip(Size size) {
  final double radius = 25; // 圆角半径,按需调整
  final path = Path();
  
  // 从顶部左侧圆角的右端点开始
  path.moveTo(radius, 0);
  // 绘制顶部左侧圆角
  path.arcToPoint(
    Offset(0, radius),
    radius: Radius.circular(radius),
    clockwise: false,
  );
  // 左侧竖线连接到底部
  path.lineTo(0, size.height);
  // 底部横线连接到右侧
  path.lineTo(size.width, size.height);
  // 右侧竖线连接到顶部右侧圆角的下端点
  path.lineTo(size.width, radius);
  // 绘制顶部右侧圆角
  path.arcToPoint(
    Offset(size.width - radius, 0),
    radius: Radius.circular(radius),
    clockwise: false,
  );
  // 闭合路径确保形状完整
  path.close();
  
  return path;
}

方案二:用RRect快速实现(简洁高效)

如果只是这种规则的顶部圆角形状,直接用RRect会更省事:

Path getClip(Size size) {
  final double radius = 25;
  // 定义仅顶部左右带圆角的矩形
  final rrect = RRect.fromLTRBAndCorners(
    0,
    0,
    size.width,
    size.height,
    topLeft: Radius.circular(radius),
    topRight: Radius.circular(radius),
  );
  return Path()..addRRect(rrect);
}

两种方案都能达到你要的效果,方案一适合后续需要扩展复杂路径的场景,方案二更简洁易维护。

内容的提问来源于stack exchange,提问作者Soun Savdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:22:13