我正在尝试使用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,但是那些会产生统一的模糊,而不是从不透明到透明的过渡.有谁知道这是否可能?
解决方法:
用软刷位图绘制怎么样?使用像Photoshop这样的图像编辑软件,制作一个柔和的圆形刷,其不透明度径向向外减小保存为可绘制,将其加载到位图中,并沿着路径均匀地绘制它.用白色画笔制作位图.这样,您可以使用PorterDuffC