我正在尝试使用Android Path类创建'发光效果'。但是,渐变不会弯曲以适应路径。相反,它只是简单地显示在“上方”,并被剪裁到路径的中风。使用方形路径,下面的图像显示了我的意思是:沿路径使用渐变
相反,应该看起来更像是这样的:
换句话说,梯度遵循的路径,特别是根据CornerPathEffect中设置的半径包裹角落。
这里是代码的相关部分:
paint = new Paint();
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(20);
paint.setAntiAlias(true);
LinearGradient gradient = new LinearGradient(30, 0, 50, 0,
new int[] {0x00000000, 0xFF0000FF, 0x00000000}, null, Shader.TileMode.MIRROR);
paint.setShader(gradient);
PathEffect cornerEffect = new CornerPathEffect(10);
paint.setPathEffect(cornerEffect);
canvas.drawPath(boxPath, paint);
任何想法?
另一种方法是在定义笔画宽度时获得“软边刷”效果。我已经尝试过BlurMaskFilters,但是它们给出了统一的模糊效果,而不是从不透明到透明的过渡。有谁知道这是可能的吗?
嘿史蒂夫 - 上周我发现了同样的想法,事实上,当我的头脑在漫长的驾驶中感到无聊时,我现在因为不记得在这里提到它而踢自己了!不过,我很高兴你已经尝试过并发现它能够工作,并且了解你遇到的问题很有趣。感谢您分享您的代码。我会在我的SVG解析器中添加类似的东西,我可能会定义自己的自定义名称空间XML标记以在特定路径上触发此功能。辉煌的工作 - +1! – Trevor
该alpha应该是'255/numberOfPasses',不乘以'i' – njzk2