2012-03-31 4 views
0
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; 
} 

Ich habe ein Problem hier, Bitmap Factory scheint nicht meine Bitmaps korrekt zu importieren. Hier ist, was the original aussieht und hier ist what getPixel (und getPixels) gibt mir zurück. Dies geschieht mit und ohne erklärten Optionen. Ich würde gerne wissen, warum es scheint, 2rds des Bildes mit 2x Auflösung zu importieren. Ich habe versucht, 1 Bit und 4 Bit Bitmaps sowie die 1 Bit und 4 Bit Bitmap.Config zu deklarieren. Verwenden Sie die Booleschen Array-Daten, um Rechtecke in einem Raster auf einer Leinwand zu zeichnen. Danke im Voraus.Odd Bitmap Factory-Verhalten (Android)

Antwort

0

Ich nehme an, Sie haben es auf dem Bildschirm bemerkt? Wenn ja, was ist das XML für das ImageView? Vielleicht haben Sie versehentlich eine falsche Breite oder Höhe eingestellt?

+0

Ah versuche ich diesen Teil erwähnt haben sollte, eine Art von benutzerdefinierten virtuellen Bildschirm zu tun, es zeigt eine 32 x 32 Raster von Rechtecke auf einer Leinwand, die mit Boolesches Array für seine Daten, wahr ist ein leeres Quadrat. Dies macht es unabhängig von der Bildschirmgröße. und eine Ausgabe von getPixel, die mir diese seltsamen Werte gibt. – Dennis

0

könnte eine späte Antwort, aber ich würde

opts.inScaled = false;