2012-03-31 3 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; 
} 

ここで問題が発生しています。ビットマップファクトリがビットマップを正しくインポートしていないようです。ここにはthe originalのようなものがあります。ここにはwhat getPixel(とgetPixels)が返されます。これは、宣言されたオプションの有無にかかわらず発生します。なぜ2倍の解像度で2倍の画像を読み込んでいるように見えますか?私は1ビットと4ビットのビットマップと、1ビットと4ビットのBitmap.Configを宣言してみました。ブール配列データを使用してキャンバス上のグリッドに矩形を描画します。前もって感謝します。ビットマップファクトリの奇妙な動作(アンドロイド)

答えて

0

あなたはそれを画面上に気付いたと思いますか? もしそうなら、ImageViewのxmlは何ですか?誤って幅や高さを誤って設定したことがありますか?

+0

ああしようと、それは使用して、キャンバス上の長方形の32×32のグリッドを表示しますデータのブール配列です。真は空の正方形です。これにより、画面サイズに依存しなくなります。私にこれらの奇妙な値を与えるgetPixelの問題。 – Dennis

0

後半の答えかもしれないが、私は、私は、この部分を言及したカスタム仮想画面のようなものをやっているはず

opts.inScaled = false;