Android getPixels()可能是一个愚蠢的错误?

Jay*_*Jay 4 android bitmap

好的,这很容易理解,但由于一些奇怪的原因我无法使它工作..我已经从实际代码中简化了这个例子.

InputStream is = context.getResources().openRawResource(R.raw.someimage);
Bitmap bitmap = BitmapFactory.decodeStream(is);
try
{
    int[] pixels = new int[32*32];
    bitmap.getPixels(pixels, 0, 800, 0, 0, 32, 32);
}
catch(ArrayIndexOutOfBoundsException ex)
{
    Log.e("testing", "ArrayIndexOutOfBoundsException", ex);
}
Run Code Online (Sandbox Code Playgroud)

为什么我一直得到一个ArrayIndexOutOfBoundsException?像素数组是32x32,据我所知,我正确使用getPixels.图像尺寸为800x800,我试图检索32x32部分.该图像是32位PNG,报告为ARGB-8888.

有任何想法吗?即使我是个白痴!我准备将键盘扔出窗外:D

con*_*n_9 9

在大小写32中使用位图宽度作为步幅

 bitmap.getPixels(pixels, 0, 32, 0, 0, 32, 32);
Run Code Online (Sandbox Code Playgroud)

与800的每一行间隙导致你的pixelarray超出界限

"我即将把键盘扔出窗外"好笑