2012-01-17 10 views
2

私はFacebookのAPIへの非同期要求を行います。更新ImageViewのアンドロイド

myListenerのonCompleteのイベントで
Utility.mAsyncRunner.request(null, params1, 
        new myListener()); 

私はImageViewの

public class PhotoDisplayListener extends BaseRequestListener { 

     @Override 
     public void onComplete(final String response, final Object state) { 
     //set my image with the url provided in the response 
     ...parse json.... 
ImageView img = (ImageView)findViewById(R.id.img); 


       URL ulrn = new URL(photourl); 
       HttpURLConnection con = (HttpURLConnection)ulrn.openConnection(); 
       InputStream is = con.getInputStream(); 
       Bitmap bmp = BitmapFactory.decodeStream(is); 
       if (null != bmp){ 
        img.setImageBitmap(bmp); 
        setImage(bmp); 
        } 
       else 
        System.out.println("The Bitmap is NULL"); 

       }catch(Exception e){} catch (FacebookError e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        showToast(e.getMessage()); 
       } 

} 

}

に画像を設定したいです

問題は、画像ビューが私によって設定された新しいもので更新されないことです。 リフレッシュしないので設定します。電話機をロックしてロックを解除すると、イメージが表示されます。 イメージビューの更新を強制するにはどうすればよいですか? ありがとう!

答えて

1

外部(別のスレッド)からUIスレッドを更新することはできません。代わりにあなたのアクティビティのメソッドを呼び出して、ImageViewを更新することをお勧めします。このトピックに関する

記事:Painless Threading

+0

それがなくなった404 :( – dinigo

+1

@ demil133私はちょうどリンクを更新しました。 – SERPRO

4

使用img.invalidate();画像を設定した後ImageViewのリフレッシュをします。このよう

::

img.setImageBitmap(bmp); 
img.invalidate(); 

希望これは私がここで質問をする前に、私はいくつかの記事を見守っあなた

0

に役立つことがあります。これは私が以前に試したので原因ではありません。私は問題は私がイメージを表示する方法であると仮定します。

クライアントから受信したイメージで置き換えられるサーバー上のイメージがあります。問題は、イメージが完全に受信されなかったにもかかわらずサーバーイメージが消えてしまうクライアントからイメージを送信することです。

私は完全に画像を受け取る方法を見つけなければならないと思います。img.SetBitmap(bmp);

関連する問題