Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在颤振中为自定义路径圆弧提供阴影?_Flutter - Fatal编程技术网

Flutter 如何在颤振中为自定义路径圆弧提供阴影?

Flutter 如何在颤振中为自定义路径圆弧提供阴影?,flutter,Flutter,正如问题所说。。。。。。我需要为自定义绘制的圆弧添加阴影。我尝试了drawShadow()方法,如下所示: Path a = Path()..arcTo(Rect.fromCircle(center: center, radius: pieRadius), -(pi / 2) + val1 + val3 + val4 ,val2, false); canvas.drawCircle(center,pieRadius/* * 0.4*/, outerArc); canvas.drawPath(a,

正如问题所说。。。。。。我需要为自定义绘制的圆弧添加阴影。我尝试了drawShadow()方法,如下所示:

Path a = Path()..arcTo(Rect.fromCircle(center: center, radius: pieRadius), -(pi / 2) + val1 + val3 + val4 ,val2, false);
canvas.drawCircle(center,pieRadius/* * 0.4*/, outerArc);
canvas.drawPath(a, innerArc1);
    canvas.drawShadow(a, Colors.black, 3, true);
但这会产生这样的阴影:

Path a = Path()..arcTo(Rect.fromCircle(center: center, radius: pieRadius), -(pi / 2) + val1 + val3 + val4 ,val2, false);
canvas.drawCircle(center,pieRadius/* * 0.4*/, outerArc);
canvas.drawPath(a, innerArc1);
    canvas.drawShadow(a, Colors.black, 3, true);

但是我想要一个阴影,像容器的boxShadow属性一样,均匀地围绕着弧

以这种方式(蓝色标记和圆弧之间的区域应在阴影下)


提前感谢您的帮助。

我也有同样的问题。经过一些实验,我发现最好的解决方案是画两条弧,一条是弧本身,另一条是阴影。阴影弧有一个很小的偏移,并且可以有自己的绘制,带有一个
MaskFilter.blur

Paint arcPaint=Paint()
…颜色=颜色。红色,
…风格=绘画风格笔划
..冲程宽度=15;
绘制阴影绘制=绘制()
…颜色=颜色。灰色[600]
…风格=绘画风格笔划
..冲程宽度=15
..maskFilter=maskFilter.blur(BlurStyle.normal,5);
路径=路径();
添加弧(从圆开始的矩形(中心:中心,半径:pieRadius),-(pi/2)+val1+val3+val4,val2);
画布.drawPath(path.shift(Offset(2,2)),阴影绘制);
canvas.drawPath(路径,arcPaint);