好的,这很容易理解,但由于一些奇怪的原因我无法使它工作..我已经从实际代码中简化了这个例子.
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
在大小写32中使用位图宽度作为步幅
bitmap.getPixels(pixels, 0, 32, 0, 0, 32, 32);
Run Code Online (Sandbox Code Playgroud)
与800的每一行间隙导致你的pixelarray超出界限
"我即将把键盘扔出窗外"好笑