2010-11-19 10 views
0

Ich verwende diesen Code in Laufen, warum severl Bilder aus dem InternetWarum wird meine Android-Anwendung langsam laufen?

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

aber die Anwendung wurde langsam angezeigt werden ?? ist die Internetverbindung der Grund ??? oder weil ich mehrere Eingabestreams für jedes Bild eingebe ???

+0

Verwenden Sie Threads zum Laden der Bilder? Sie sind hilfreich, wenn Sie etwas aus dem Internet laden müssen, da die Aufgabe ziemlich lange dauern kann. – Javi

Antwort

2

Sie sollten InputStream und Drawable.createFromStream (...) asynchron erstellen, entweder mithilfe einer AsyncTask oder mithilfe eines separaten Threads, und anschließend ImageView mithilfe eines Handlers aktualisieren, sobald sie abgeschlossen sind. AsyncTask ist bevorzugt.
http://developer.android.com/reference/android/os/AsyncTask.html

+0

kannst du mir ein einfaches Beispiel zeigen? – Adham

+0

Es gibt ein Beispiel auf der oben verlinkten API Seite, auch auf dem Android Dev Blog http://android-developers.blogspot.com/2009/05/painless-threading.html – GeekYouUp

+0

Ist das nützlich? http://stackoverflow.com/questions/1905399/listitem-lazyload-asynctask-image-display-problem – Adham

Verwandte Themen