SweepGradient ArrayIndexOutOfBoundsException

时间:2016-12-13 05:48:08

标签: android indexoutofboundsexception sweepgradient

我像这样创建一个SweepGradient

int[] colors = { Color.RED, Color.BLUE };
// float[] positions = {0,1}; => this will work without error
float[] positions = { 0 , 280f/360 };
SweepGradient gradient = new SweepGradient(width / 2, height / 2, colors, positions);

当我设置float[] positions = {0,1}时,它将正常工作(无错误) 当我更改为float[] positions = { 0 , 280f/360 }时,在Preview mode of AndroidStudio中显示渲染错误但在模拟器中它工作正常 为什么会这样?我该如何解决?

enter image description here

2 个答案:

答案 0 :(得分:1)

    int colors[] = {Color.RED, Color.BLUE, Color.BLUE};
    float positions[] = {0.f, 280f / 360, 1.f};

确保positoins数组跨越全范围,即[0.f,1.0f]。现在预览也将正确显示。

答案 1 :(得分:0)

可能为NULL。颜色数组中每个对应颜色的相对位置,从0开始,以1.0结尾。