static Boolean[][] squares = new Boolean[32][32];
static BitmapFactory.Options opts = new BitmapFactory.Options();
public static Boolean[][] getFrame(int id){
opts.inPreferredConfig = Bitmap.Config.ALPHA_8;
opts.outHeight = 32;
opts.outWidth = 32;
Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.raw.f11, opts);
for (int y = 0; y < 32; y++) {
for (int x = 0; x < 32; x++) {
int pixel = bmp.getPixel(x, y);
if(pixel == -1)
squares[x][y] = false;
else
squares[x][y] = true;
}
}
return squares;
}
여기에 문제가있어, bitmap factory가 내 비트 맵을 올바르게 가져 오지 않는 것 같습니다. 여기에 the original의 모양이 있으며 여기에 what getPixel (및 getPixels)이 나를 돌려줍니다. 이것은 선언 된 옵션이 있거나없는 경우에 발생합니다. 왜 2 배 해상도로 2 배의 그림을 가져 오는 것 같아요. 나는 1 비트와 4 비트 비트 맵을 시도했으며, 1 비트와 4 비트 비트 맵을 선언했다. 설정. 부울 배열 데이터를 사용하여 캔바스의 격자에 사각형을 그립니다. 미리 감사드립니다.이상한 비트 맵 공장 동작 (안드로이드)
아를 시도 할 것이다, 그것은을 사용하여 캔버스에 사각형의 32 X 32 그리드를 표시 데이터의 부울 배열입니다. 빈 사각형입니다. 이것은 화면 크기와 무관합니다. 나에게 이러한 이상한 가치를주는 getPixel 문제가있다. – Dennis