2012-01-02 16 views
1

ソケットから受け取ったbytearrayにimageviewをリフレッシュします。アンドロイドでイメージビューを更新する方法

new Thread(new Runnable() { 

      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       while (!socket.isClosed()) { 
        imgArray = receiveImagebytes(); 
       } 
      } 
     }).start(); 

     try { 
     Thread.sleep(5000); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


while (!socket.isClosed()) { 
      runOnUiThread(new Runnable() { 

       @Override 
       public void run() { 
        // TODO Auto-generated method stub 

        imageView.setImageBitmap(BitmapFactory.decodeByteArray(imgArray, 0, imgArray.length)); 
        imageView.invalidate(); 
       } 
      }); 

imgArrayは、別のスレッドで受け取ったbytearrayです。イメージビューをリフレッシュしたいですが、動作していません。同じデフォルトアイコンで残っています

+0

maybe refreshDrawableState()? – Mondo

+0

私もそれを試みたが動作していない... –

答えて

1

申し訳ありません。問題は、上記のコードがメインスレッドにあり、UIに対するすべての応答がブロックされていることです。

私がのスレッドをメインスレッドからスレッドに移動したときに問題が解決しました。今は正しく動作しています。

すべての返信ありがとう

1

イメージが常に同じになっているか、1回しか来ていません。 上記のコードを適切な場所から正しく起動した場合は、imageViewを更新する必要があるためです。

違う方法でデバッグしようとすると、コードは更新されます。

+0

実際に私はアンドロイドにデスクトップ画面を送信しています...bytrayrayは別のスレッドを介して読み込まれています...しかし、私は** ** ** while it 'it' iterating it while it while –

+0

コードを更新しました –

関連する問題