我写这个方法:ArrayIndexOutOfBounds,不知道为什么?
public static Bitmap matrixToBitmap(int[][] slika)
{
int w = slika[0].length;
int h = slika[1].length;
Bitmap into = Bitmap.createBitmap(w, h, Config.ARGB_8888);
for (int x = 0; x < w; x++)
{
for (int y = 0; y < h; y++)
{
if(slika[x][y] < 128)
into.setPixel(x, y, Color.BLACK);
else
into.setPixel(x, y, Color.WHITE);
}
}
return into;
}
,当我把它叫做我有int[454][454]
阵列Android应用内,它说这Logcat
:
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=452; index=452
这行matrixToBitmap
方法的指点:
if(slika[x][y] < 128)
有人可以为什么会这样呢? w
和h
的值分别为454和454,就像它们应该是一样。
数组索引相对于数组长度的界限是什么? –
只需要注意一点:你应该使用int w = slika.length;而不是int w = slika [0] .length;'就这样,'w'和'h'将始终是相同的,即使数组的维度不是。 – jonhopkins
你的'w'应该是'slika.length',而不是'slika [0] .length' – fge