【问题标题】:Flutter Clipper Radius颤振剪裁半径
【发布时间】:2021-01-27 07:50:12
【问题描述】:

我有一个自定义剪裁器(五角形),但我需要将所有的角都弄圆一点。

这是我的 Clipper 代码:

class Pentagon extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    final path = Path();
    path.lineTo(size.width * 0.5, 0);
    path.lineTo(size.width, size.height * 0.38);  
    path.lineTo(size.width * 0.82, size.height);
    path.lineTo(size.width * 0.18, size.height);
    path.lineTo(0, size.height * 0.38);
    path.lineTo(size.width * 0.5, 0);

    path.close();
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}

【问题讨论】:

    标签: flutter flutter-layout flutter-clippath


    【解决方案1】:

    尝试使用此工具绘制自定义形状,fluttershapemaker

    【讨论】:

    • 我已经制作了自定义形状,但我需要将角稍微圆润
    【解决方案2】:

    使用StrokeCap.round圆角,演示示例:

    class CustomPainterPentagon extends CustomPainter{
      
      @override
      void paint(Canvas canvas, Size size) {
        
        
    
      Paint paint_0 = new Paint()
          ..color = Color.fromARGB(255, 33, 150, 243)
          ..style = PaintingStyle.fill
          ..strokeWidth = 8.34;
          ..strokeCap = StrokeCap.round;
    
             
        Path path_0 = Path();
        path_0.moveTo(size.width*0.25,size.height*0.50);
        path_0.lineTo(size.width*0.31,size.height*0.40);
        path_0.lineTo(size.width*0.38,size.height*0.40);
        path_0.lineTo(size.width*0.44,size.height*0.50);
        path_0.lineTo(size.width*0.34,size.height*0.60);
        path_0.lineTo(size.width*0.25,size.height*0.50);
        path_0.close();
    
        canvas.drawPath(path_0, paint_0);
      
        
      }
    
      @override
      bool shouldRepaint(covariant CustomPainter oldDelegate) {
        return true;
      }
      
    }
    

    然后这样称呼它:

    child: CustomPaint(
      size: Size(800,500), //You can Replace this with your desired WIDTH and HEIGHT
      painter: CustomPainterPentagon(),
    ),
    

    【讨论】:

    • 我试过这个,但结果还是一样。它没有使角落变圆
    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 2021-10-01
    • 2019-02-20
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多