2017-04-05 18 views
0

はどのように私はint [] formatで画像を表示しますImageViewの中でint配列[]の形式で画像を表示します。例えば、

public class MainActivity extends Activity { 

    private ImageView imageTeste; 
    private Bitmap bitmap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     int[] UM = {1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1}; 
     bitmap = Bitmap.createBitmap(UM, 5, 9, Bitmap.Config.RGB_565); 
     imageTeste = (ImageView) findViewById(R.id.imageId); 
     imageTeste.setImageBitmap(bitmap); 
    } 
} 

しかし:ここ

int[] UM = {1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1}; 

は私のコードですBitmap.Config.ARGB_8888パラメータをRGB_565に変更しただけで何も表示されませんが、それを行うと、白いピクセル(1)が黒くなります。値(1)〜255を変換しても機能しない場合は、青色で表示されます。

誰もこの問題を解決する方法を知っていますか?

+0

私は、bytearrayをimageに変換したいと思います。 –

答えて

0

使用している方法はBitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config)です。このメソッドのドキュメントを参照してくださいhere。メソッドを提供するint[]はColor intの配列でなければなりません。これらは通常の整数ではなく、これらの値に0または1を使用すると、画像が空に見えるようになります。

hereのAndroidドキュメントをご覧ください。

たとえば、不透明な青は0xff0000ffです。カラーintは、単一の32ビット整数値でパックされた4つの成分を有する。 4つのコンポーネントはそれぞれAlpha、Red、Green、Blueを表します。この例では、AコンポーネントはFFであり、色は完全に不透明であることを意味する。 R成分00、赤はありません。 G成分は00です。グリーンはありません。 B成分は、すべて青色のFFです。

createBitmap()メソッドに有効なint[]を渡すだけで問題を解決する必要があります。

+0

ありがとう!それは働いている! – Wander

+0

よろしくお願いします!私の答えを受け入れてください! –