在画布上绘画时,如何使用RadialGradient作为着色器创建水波纹效果?

时间:2019-05-25 09:39:41

标签: android radial-gradients

我正在尝试使用RadialGradient在浮动小部件上创建水波纹效果。我正在画布上画一个圆,所以所有对图片有波纹效果的解决方案似乎都不适用于这里。

到目前为止,我所做的是在Timer中创建一个新的RadialGradient,并将绘制的着色器设置为此RadialGradient。然后,我会重画。我尝试更改半径和颜色,包括可以使用整个颜色而不是两个颜色的选项。但是我尝试过的所有方法都没有达到预期的效果。有没有人做过类似的事情,或者知道是否有解决方法?

在计时器内部,我有以下内容:

shader = new RadialGradient(max_diameter>>1, max_diameter>>1, 10+counter++, colorStart, colorStop, Shader.TileMode.MIRROR);
counter %= 10;
paint.setShader(shader);

这不起作用,因为半径在边界处加总。 我尝试了使用颜色数组的选项,但没有得到任何有用的信息。

最后,我希望波浪从圆心移动到边界,在波浪之间的距离保持相等。

0 个答案:

没有答案