2011-02-08 2 views
4

AndroidのLive IP CameraからMjpgイメージを取得しているアプリケーションを作成しています。AndroidでBitmap Imageを表示するには

問題は、画像がByteArrayの形式で取得されているためです。 Imageを表示するにはどうすればよいですか?

私は、画像を表示するには、次のコードを使用しています:アンドロイドレイアウト上のByteArrayを表示する方法を教えてください

ImageView imageView = (ImageView) findViewById(R.id.imageView1); 
Bitmap bmp = BitmapFactory.decodeByteArray(buffer, start, a); 
imageView.setImageBitmap(bmp); 

をしかし、私は例外

android.view.ViewRoot CallFromWrongThreadException 

をgetiingメートル。

答えて

2

他のスレッドからビューを更新するには、runOnUiThread()を使用する必要があります。

1

あなたが何らかのビュー関連の仕事をしている時は、常にGUIスレッドからそれをします。 the thread that created the view hierarchy

これを達成するにはHandlersを使用してください。

1

例外CallFromWrongThreadExceptionは、UIスレッドではなく、許可されていないスレッドからUIを更新しようとしたことを意味します。

あなたの問題は、画像を作成するコードが間違っていても、間違った場所でやっているということではありません。 AsyncTaskでバックグラウンドでイメージを取得している場合は、ではなく、setImageBitMap()postExecute()に設定する必要があります。

もっとコードを見ることなく、私たちはあなたをもっと助けることはできません。

5
ImageView tv1; 
tv1= (ImageView) findViewById(R.id.image); 
InputStream si1 = asset.open("image/" + cat_arr1[i] + ".png"); 
Bitmap bitmap1 = BitmapFactory.decodeStream(si1); 
tv1.setImageBitmap(bitmap1); 
関連する問題