Flutter 如何在颤振中为自定义路径圆弧提供阴影?
正如问题所说。。。。。。我需要为自定义绘制的圆弧添加阴影。我尝试了drawShadow()方法,如下所示: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,
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);