我想生成一个小部件,其具有类似于给定图像中的剪切路径。我在这里谈论的是应用程序屏幕的白色部分,其中包含信息。

android - 如何生成像提供的图像中那样的clipPath-LMLPHP

下面的代码是我在尝试时尝试的,但是失败了!

 Path getClip(Size size) {
var path = new Path();
var controlpoint = Offset(10.0, size.height);
var endpoint = Offset(size.width / 2, size.height);

path.lineTo(0.0, size.height - 100);

path.quadraticBezierTo(
    controlpoint.dx, controlpoint.dy, endpoint.dx, endpoint.dy);

path.lineTo(size.width, size.height);
path.lineTo(size.width, 0.00);

return path;


请用这个代码帮助我:)

编辑:我直到这部分,但我仍然卡住:(

**Path getClip(Size size) {
final path = Path();
path.lineTo(size.width, 100);
path.lineTo(size.width, size.height);
path.lineTo(0.00, size.height);
path.close();

return path;


} **

及以上自定义clipPath,请使用ClipRRect。

android - 如何生成像提供的图像中那样的clipPath-LMLPHP

最佳答案

最终,一些使用该代码的游戏最终得到以下输出:

Path getClip(Size size) {
final path = Path();
path.lineTo(20.0, 0.0);
path.lineTo(size.width, 120);
path.lineTo(size.width, size.height);
path.lineTo(0.00, size.height);
path.close();

return path;


添加了一个父母是这样的:

ClipRRect(
          borderRadius: BorderRadius.only(
            topLeft: Radius.circular(25.0),
            bottomLeft: Radius.circular(25.0),
          ),
          child: ClipPath(
          clipper: SinglePageClipper(),
          child: Container(
            color: Colors.red,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.start,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                SizedBox(
                  height: 400,
                ),
                Center(child: Text('Demo Page'),)
              ],
            ),
          ),
        ),
      ),


android - 如何生成像提供的图像中那样的clipPath-LMLPHP

我认为这是可以改进的事情,因此将尝试这样做。但与此同时,如果有人有更好的方法。请给我们的知识以启发,因为这对于像我这样的初学者来说更耗时。

10-07 16:20