2011-01-12 2 views
1

J'utilise le code suivant pour afficher des images à partir d'une url dans mon imageview:android imageview de problème url

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) 
    { 
     return null; 
    } 
} 


Drawable drawable = LoadImageFromWebOperations("http://www.androidpeople.com/wp-content/uploads/2010/03/android.png"); 
imgView.setImageDrawable(drawable); 

J'ai une minuterie qui change l'image tous les 5 secondes. Mais dans certains cas rares, l'application se fige. Est-ce parce que LoadImageFromWebOperations ne parvient pas à charger l'image? Ou des idées sur ce que le problème pourrait être, et comment le réparer? Merci!

Répondre

0

Vous bloquez le thread UI en utilisant createFromStream() et c'est pourquoi l'application se bloque de temps en temps. Ce que vous devez faire est de charger l'image dans AsyncTask doInBackground() et onPostExecute que vous devez définir le Drawable. Vous avez également besoin d'un autre espace réservé (généralement un spinner) pendant le chargement de la tâche AsyncTask à partir du Web