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;
}
当我在我的Android应用中使用int[454][454]
数组调用它时,它在Logcat
中说明了这一点:
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=452; index=452
指向matrixToBitmap
方法的这一行:
if(slika[x][y] < 128)
有人可以解释为什么会这样吗? w
和h
的值变为454和454,就像它们应该的那样。
答案 0 :(得分:2)
错误在这里:
int w = slika[0].length;
int h = slika[1].length;
发生的事情是,您将数组中第一行的长度设置为w
,将第二行的长度设置为h
使其有效,将其更改为:
int w = slika.length;
int h = slika[0].length;