2013-08-28 40 views
-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; 
      } 
     } 
    } 
+0

你會得到強制關閉嗎?你的應用崩潰了嗎? – Raghunandan

+0

如果我給代碼處理程序的內部代碼我得到錯誤,我不知道如何使圖像可以運行 –

+0

你做得不對。如果你從url獲得你應該使用一個線程或asynctask – Raghunandan

回答

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);  
} 
+0

當我已經回答並且適用於您時,您爲什麼會回答您的問題?它不重複嗎?並且你正在創建兩個處理程序。 – Raghunandan

+0

它的工作,它不重複,它可以與兩個處理程序 –

+0

你不需要兩個處理程序 – Raghunandan

0

如果您想使用Handler,請使用下圖。

但我看到你在ui線程上進行網絡相關的操作,這是不可能發佈蜂窩。你必須使用一個線程或asynctask。你會得到NetworkOnMainThreadException

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

我建議你使用threadAsyncTask

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(); 
+0

我試了,但可以運行圖像,並且圖像不顯示 –

+0

也許你有另一個答案對我? –