这应该是一个简单的修复程序,但我无法理解?

我想从整数数组中随机选择一个整数并加载它的位图-有时它会通过,但大多数时候它会出错-我看不到我如何走出数组?

最初,我使用array.length()然后使用array.length()-1,但现在我在起点和终点之间安全地使用范围〜这不是我想要的

    public int GetRandomNumber(int min, int max) {
    return min + (int)(Math.random() * ((max - min) + 1));
}

public void Whatever()
{

    Integer[] ImageIds;
    ImageIds = new Integer[9];
    ImageIds[0] = R.drawable.splatter1;
    ImageIds[1] = R.drawable.splatter2;
    ImageIds[2] = R.drawable.splatter3;
    ImageIds[3] = R.drawable.splatter4;
    ImageIds[4] = R.drawable.splatter5;
    ImageIds[5] = R.drawable.splatter6;
    ImageIds[6] = R.drawable.splatter7;
    ImageIds[7] = R.drawable.splatter8;
    ImageIds[8] = R.drawable.splatter9;
    ImageIds[9] = R.drawable.splatter10;

Bitmap Asset;

    for (int i = 0; i < splatters.length; i++) {

        int RandomIndex = GetRandomNumber(0, 9);

        Asset = BitmapFactory.decodeResource(mContext.getResources(), ImageIds[RandomIndex ]);

     }
 }


我收到ArrayIndexOutOfBounds异常

为什么会崩溃?

最佳答案

因为必须

ImageIds = new Integer[10];

您设置了10张图像,但创建了大小为9的数组。
还要查看日志中导致错误的行。确实有帮助。

09-11 22:23