2012-05-03 8 views
2

私は、経路が緑色、黒色の壁が橙色と青色の端で始まる迷路を表す9X11ピクセルのビットマップを持っています。ImageView with squared pixels(補間なし)

それ行列である:

int[][] map = new int[][] { 
      { 1, 1, 1, 1, 1, 1, 1, 1, 1 }, 
      { 0, 0, 1, 0, 0, 0, 0, 0, 1 }, 
      { 1, 1, 1, 1, 0, 1, 1, 0, 1 }, 
      { 1, 1, 1, 1, 1, 1, 1, 0, 0 }, 
      { 1, 0, 0, 0, 0, 1, 0, 0, 0 }, 
      { 1, 1, 1, 1, 0, 1, 1, 1, 1 }, 
      { 1, 1, 1, 1, 0, 1, 0, 0, 1 }, 
      { 1, 1, 1, 1, 0, 1, 0, 0, 1 }, 
      { 1, 1, 1, 1, 0, 1, 0, 0, 1 }, 
      { 1, 1, 1, 1, 0, 1, 0, 0, 0 }, 
      { 1, 1, 1, 1, 0, 1, 1, 1, 1 }, }; 

問題は、私はImageViewの(fill_parent、fill_parent)でビットマップを描画するときの結果であるということです。 enter image description here

どのように私は、ピクセルが正方形に保つことができますか?

注:画像ビューはアンチエイリアスなしで拡張したい場合、私はあなたが本当に何をする必要があるか、方法

​​
+0

Bitmap.createScaledBitmap()を使用して 'Bitmap'を拡大し、' filter'を 'false'に設定することもできます。次に、小さなビットマップを更新した後で毎回これを行うか、新しい 'ピクセル'を設定するときに大きなビットマップを直接更新する必要があります。 – Torious

+2

アンチエイリアスを無効にするとどうなりますか? – trashgod

答えて

3

でピクセルを

Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

でビットマップを作成し、設定BitmapDrawableを取得します。例:

BitmapDrawable bd = new BitmapDrawable(activity.getResources(), bitmap); 
bd.setAntiAlias(false);