2010-11-19 210 views
0

我使用這個代碼從互聯網爲什麼我的android應用程序運行速度變慢?

ImageView iv = new ImageView; 
URL url = new URL(address); 
InputStream content = (InputStream)url.getContent(); 
Drawable d = Drawable.createFromStream(content , "src"); 
iv.setImageDrawable(d) 

顯示severl的圖像,但該應用程序變得運行緩慢的原因? 互聯網連接是原因嗎?或者因爲我輸入幾個輸入流來顯示每個圖像?

+0

您是否使用線程來加載圖像?當您需要從Internet上加載某些內容時,它們很有用,因爲任務可能需要很長時間。 – Javi 2010-11-19 11:30:24

回答

2

您應該使用AsyncTask或使用單獨的線程異步創建InputStream和Drawable.createFromStream(...),然後在完成後使用Handler更新ImageView。 AsyncTask是可取的。

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

+0

你能告訴我一個簡單的例子嗎? – Adham 2010-11-19 11:32:29

+0

在上面鏈接的API頁面中有一個例子,也在Android開發人員博客http://android-developers.blogspot.com/2009/05/painless-threading.html – GeekYouUp 2010-11-19 11:36:13

+0

這是否有用? http://stackoverflow.com/questions/1905399/listitem-lazyload-asynctask-image-display-problem – Adham 2010-11-19 11:38:17

相關問題