-1

私は初心者で、質問があります。関数ハンドラーでイメージを実行したいのですが、このコードでイメージを実行できるコードはどれですか? この問題を解決できますか?

Intent intent = getIntent();

 String url= intent.getStringExtra("URL");
tombol2 = (Button) findViewById(R.id.button2);

iv = (ImageView) findViewById(R.id.imageView1);
Drawable d1=LoadImageFromWebOperations(url);
iv.setImageDrawable(d1);

}
private Drawable LoadImageFromWebOperations(String url)
        {
             try
             {
                 InputStream is = (InputStream) new URL(url).getContent();
                 Drawable d = Drawable.createFromStream(is, "src name");
                 return d;
        }catch (Exception e) {
                 System.out.println("Exc="+e);
                 return null;
             }  
        }
   }
4

2 に答える 2

0

Handler を使用する場合は、以下のように使用します。

しかし、ハニカムを投稿することはできないUIスレッドでネットワーク関連の操作を行っていることがわかります。スレッドまたは asynctask を使用する必要があります。あなたは得るでしょうNetworkOnMainThreadException

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

threadまたはを使用することをお勧めしますAsyncTask

http://developer.android.com/reference/android/os/AsyncTask.html

Handler m_handler;
Runnable m_handlerTask ;  
m_handler = new Handler();   
m_handlerTask = new Runnable()
{
  @Override 
  public void run() { 

    // do something  
    m_handler.postDelayed(m_handlerTask, 1000);    

  }
  };
 m_handlerTask.run();
于 2013-08-28T03:36:43.960 に答える
0

LoadImageWebOperationsの前にこれをランナブルにするだけで修正されました

runnable = new Runnable() {

        @Override
        public void run() {
            try {
                LoadImageFromWebOperations(d1);
            } catch (Exception e) {
                e.getStackTrace();
            }
            new Handler().postDelayed(runnable, 10000);
        }
    };
    new Handler().postDelayed(runnable, 10000);     
}
于 2013-09-08T08:49:08.643 に答える