Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android Studio中设置更大的径向渐变_Java_Android_Xml_Radial Gradients - Fatal编程技术网

Java 在Android Studio中设置更大的径向渐变

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,

目前,Android上的径向梯度不是我想要的。 我有一个改变半径并四处移动的球,定义为:

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样式吗??有没有什么方法可以产生我想要的梯度