我想在Flutter 中画一个梯形,就像这样:

enter image description here

现在,我正在使用Rrect绘制一个椭圆形状,

enter image description here

下面是我绘制第二张图片的代码(获得一个椭圆形)

 @override
  void paint(Canvas canvas, Offset offset, ImageConfiguration cfg) {
    final Offset circleOffset =
        offset + Offset(cfg.size!.width / 2, cfg.size!.height + 8);
    canvas.drawRRect(
        RRect.fromRectAndRadius(
          Rect.fromCenter(center: circleOffset, width: 50, height: 5),
          Radius.circular(radius),
        ),
        _paint);
  }

推荐答案

使用Rrect.FromRectAndCorners,

  {
    Radius topLeft = Radius.circular(10),
    ///top left corner curve or radius, in my case it is 10
    Radius topRight = Radius.circular(10),
    ///top right corner curve or radius, in my case it is 10
    Radius bottomRight = Radius.zero,
    ///bottom left corner curve or radius, in my case it is zero
    Radius bottomLeft = Radius.zero
    ///bottom right corner curve or radius, in my case it is zero
  }

因此,我的最终代码如下所示

@override
  void paint(Canvas canvas, Offset offset, ImageConfiguration cfg) {
    final Offset circleOffset =
        offset + Offset(cfg.size!.width / 2, cfg.size!.height + 8);
    canvas.drawRRect(
      RRect.fromRectAndCorners(
        Rect.fromCenter(center: circleOffset, width: 50, height: 5),
        bottomLeft: Radius.zero,
        bottomRight: Radius.zero,
        topLeft: Radius.circular(radius),
        topRight: Radius.circular(radius),
      ),
      _paint,
    );
  }

将在文档here中获得更多详细信息

https://api.flutter.dev/flutter/dart-ui/RRect/RRect.fromRectAndCorners.html

谢谢你的帮助.

Flutter相关问答推荐

无法在Flatter中设计正确的布局

如何将图像从顶部和底部半向外设置为飘动

SingleChildScrollView正在将Container的高度限制为子对象,尽管使用了Expanded Inside Row()

video_player在Android上返回401 Unauthorized with Bunny CDN

我不能在Fighting中裁剪图片输入错误,否则应用程序会崩溃

如何正确处理Flutter 翼中使用火基时发生的碰撞?

Flutter-Riverpod:如何只从提供者读取一次值

Dart/Flutter 泛型:类型 '(SearchFilterItemModel) => String' 不是类型 '(SearchFilterItemModel) => String' 的子类型

使用Flutter项目设置Firebase遇到困难?这些解决方案或许能帮到你!

Flutter ImagePicker - 在 onPressed 中异步获取图像显示 lint 警告

我对 Flutter Apk 有疑问

如何更改 DropDownMenu 的显示方向?

flutter 在文本字段中更改部分文本选定 colored颜色

如何在 Flutter 中滚动时为多个小部件设置动画

Flutter HLS .m3u8 视频无法实时播放

容器在发布模式下显示灰色框(抖动)

Flutter 如何使用 ClipPath 编辑容器的顶部?

Flutter 中的 Firebase 后台消息处理程序产生重复的隔离并运行应用程序两次

如何按键在 map 列表中搜索

http响应在Flutter 中返回307