如何从自定义绘画小部件更改为剪切路径小部件?

金恩珠
class CoverPainter extends CustomPainter {
  final Size sSize;
  const CoverPainter({this.sSize});

  @override
  void paint(Canvas canvas, Size size) {
    final paint = Paint();
    final double r = (sSize.width).toDouble()/6.8;

    paint.color = Color(0xffE6E6E5);
    canvas.drawPath(
      Path.combine(
        PathOperation.difference,
        Path()..addRect(Rect.fromLTRB(sSize.width/2-r, 0.6*sSize.height-90-r, sSize.width/2+r, 0.6*sSize.height-90+r)),
        Path()
          ..addOval(Rect.fromCircle(
              center: Offset(sSize.width / 2, 1.2/2*sSize.height-90 ),
              radius: sSize.width/6.8))
          ..close(),
      ),
      paint,
    );
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return false;
  }
}

这是我的原始代码,由于某些原因,我需要将其更改为剪切路径小部件。作为初学者,这真的很难...(顺便说一句,sSize是screenSize,而不是画布大小)

class CoverClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    //final path = Path();
    final double r = (size.width).toDouble()/6.8;

    Path.combine(
        PathOperation.difference,
        Path()..addRect(Rect.fromLTRB(size.width/2-r, 0.6*size.height-90-r, size.width/2+r, 0.6*size.height-90+r)),
        Path()
          ..addOval(Rect.fromCircle(
              center: Offset(size.width / 2, 1.2/2*size.height-90 ),
              radius: size.width/6.8))
          ..close()
    );
    return Path();
  }

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

我这样尝试过,但没有任何反应。没有错误,但没有任何显示。

class _Layer2State extends State<Layer2> {
  @override
  Widget build(BuildContext context) {
    final Size size = widget.size;

    // return CustomPaint(painter: CoverPainter(sSize: size));

    return ClipPath(
      clipper: CoverClipper(),
      child: Container(
        color: Colors.white,
        height: size.height,
        width: size.width,
      ),
    );
  }
}

实际上,我对clippath一无所知。我需要帮助......

马里亚诺·佐里拉

您需要返回要修改的实际路径,它将起作用。当前返回的路径为空:

class CoverClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    final double r = (size.width).toDouble()/6.8;

    return Path.combine(
        PathOperation.difference,
        Path()..addRect(Rect.fromLTRB(size.width/2-r, 0.6*size.height-90-r, size.width/2+r, 0.6*size.height-90+r)),
        Path()
          ..addOval(Rect.fromCircle(
              center: Offset(size.width / 2, 1.2/2*size.height-90 ),
              radius: size.width/6.8))
          ..close()
    );
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) {
    return true; // you can also change this to true to repaint.
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Django的默认小部件更改为自定义小部件

来自分类Dev

将Django的默认小部件更改为自定义小部件

来自分类Dev

如何从自定义窗口小部件类更改中央窗口小部件?

来自分类Dev

如何自定义android小部件

来自分类Dev

如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

来自分类常见问题

Flutter重用自定义小部件

来自分类Dev

自定义WooCommerce产品小部件

来自分类Dev

Yii中的自定义小部件

来自分类Dev

KIVY DragBehavior自定义小部件

来自分类Dev

Flutter重用自定义小部件

来自分类Dev

Yii中的自定义小部件

来自分类Dev

自定义小部件颤动

来自分类Dev

如何在自定义小部件中显示QChartView?

来自分类Dev

如何制作自己的自定义桌面小部件?

来自分类Dev

如何在 Flutter 中自定义 Slider 小部件?

来自分类Dev

如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

来自分类Dev

自定义小部件中的自定义onClickListner-如何?

来自分类Dev

如何基于从外部传递的更改值动态更改自定义小部件中成员的值

来自分类Dev

Qt自定义小部件不显示子小部件

来自分类Dev

使用一组现有的小部件创建自定义小部件?

来自分类Dev

Vaadin和自定义Gwt小部件-设置小部件的语言

来自分类Dev

为ruby gem dashing.io创建自定义小部件-或合并小部件元素

来自分类Dev

自定义可检查/可切换的QFrame小部件

来自分类Dev

appcompat SeachView小部件的自定义字体

来自分类Dev

Yii,自定义小部件返回null

来自分类Dev

Android为自定义TextView小部件设置字体

来自分类Dev

基维自定义小部件绑定错误

来自分类Dev

从qtdisgner访问自定义qtdesigner插件的子小部件

来自分类Dev

在Qt Designer中使用PySide自定义小部件

Related 相关文章

  1. 1

    将Django的默认小部件更改为自定义小部件

  2. 2

    将Django的默认小部件更改为自定义小部件

  3. 3

    如何从自定义窗口小部件类更改中央窗口小部件?

  4. 4

    如何自定义android小部件

  5. 5

    如何创建自定义的fld sdk小部件,重建flutter和使用新的小部件

  6. 6

    Flutter重用自定义小部件

  7. 7

    自定义WooCommerce产品小部件

  8. 8

    Yii中的自定义小部件

  9. 9

    KIVY DragBehavior自定义小部件

  10. 10

    Flutter重用自定义小部件

  11. 11

    Yii中的自定义小部件

  12. 12

    自定义小部件颤动

  13. 13

    如何在自定义小部件中显示QChartView?

  14. 14

    如何制作自己的自定义桌面小部件?

  15. 15

    如何在 Flutter 中自定义 Slider 小部件?

  16. 16

    如何在应用小部件中创建类似于Google Play音乐小部件中的自定义视图?

  17. 17

    自定义小部件中的自定义onClickListner-如何?

  18. 18

    如何基于从外部传递的更改值动态更改自定义小部件中成员的值

  19. 19

    Qt自定义小部件不显示子小部件

  20. 20

    使用一组现有的小部件创建自定义小部件?

  21. 21

    Vaadin和自定义Gwt小部件-设置小部件的语言

  22. 22

    为ruby gem dashing.io创建自定义小部件-或合并小部件元素

  23. 23

    自定义可检查/可切换的QFrame小部件

  24. 24

    appcompat SeachView小部件的自定义字体

  25. 25

    Yii,自定义小部件返回null

  26. 26

    Android为自定义TextView小部件设置字体

  27. 27

    基维自定义小部件绑定错误

  28. 28

    从qtdisgner访问自定义qtdesigner插件的子小部件

  29. 29

    在Qt Designer中使用PySide自定义小部件

热门标签

归档