Java 在Android Studio中设置更大的径向渐变
目前,Android上的径向梯度不是我想要的。 我有一个改变半径并四处移动的球,定义为:Java 在Android Studio中设置更大的径向渐变,java,android,xml,radial-gradients,Java,Android,Xml,Radial Gradients,目前,Android上的径向梯度不是我想要的。 我有一个改变半径并四处移动的球,定义为: private float ballRadius = 15; // Ball's radius private float ballX; // Ball's center (x,y) private float ballY; 我想要一个绿色的渐变,但左上角没有小白点: 请注意,中间有大量的空白,但边缘的颜色非常深 使用我的径向渐变代码: ballBounds.set(ballX-ballRadius,
private float ballRadius = 15; // Ball's radius
private float ballX; // Ball's center (x,y)
private float ballY;
我想要一个绿色的渐变,但左上角没有小白点:
请注意,中间有大量的空白,但边缘的颜色非常深
使用我的径向渐变代码:
ballBounds.set(ballX-ballRadius, ballY-ballRadius, ballX+ballRadius, ballY+ballRadius);
paint.setShader(new RadialGradient(ballX, ballY, ballRadius, Color.WHITE, Color.GREEN, Shader.TileMode.MIRROR));
canvas.drawOval(ballBounds, paint);
我得到一张中间有一点白色的图像:
通过将渐变半径加倍,可以预期顶部图像会显示出来。
但是,该代码:
paint.setShader(new RadialGradient(ballX, ballY, 2 * ballRadius, Color.WHITE, Color.GREEN, Shader.TileMode.MIRROR));
生成此圆点,中间有洗过的颜色和相同大小的whtie空间:
(很抱歉看到这么大的图像!)
我甚至尝试使用3种白色和2种绿色的数组,自己设置更改点,但我得到的图像基本上与以前相同:
int[] colorArray = new int[4];
colorArray[0] = colorArray[1] = Color.WHITE;
colorArray[2] = colorArray[3] = Color.GREEN;
float[] stopsArray = new float[4];
stopsArray[0] = 0;
stopsArray[1] = 0.9f;
stopsArray[2] = 0.95f;
stopsArray[3] = 1;
paint.setShader(new RadialGradient(ballX, ballY, gradientRadius, colorArray, stopsArray, Shader.TileMode.MIRROR));
我必须导入自己的图像吗??我需要定制XML样式吗??有没有什么方法可以产生我想要的梯度