2010-07-13 5 views
3

Je crée une vue de galerie dans laquelle je charge des images à partir du Web. Pendant le chargement des images, je souhaite afficher une animation comme espace réservé pour chaque image. J'ai pensé que cela pourrait être fait en utilisant un AnimationDrawable, cependant, l'animation ne commencera pas. La première image de l'animation se charge comme prévu, et si j'utilise la même chose par exemple onWindowFoucsChanged dans une activité, tout fonctionne correctement.Comment utiliser AnimationDrawable dans getView avec Gallery

Dans la méthode getView de ma GalleryItemCursorAdapter (qui se prolonge SimpleCursorAdapter) I'have l'extrait suivant:

AnimationDrawable frameAnimation = (AnimationDrawable) mContext.getResources().getDrawable(R.drawable.loading); 
    holder.picture.setImageDrawable(frameAnimation); 
    frameAnimation.setCallback(holder.picture); 
    frameAnimation.setVisible(true, true); 
    frameAnimation.start();  

holder.picture est un ImageView. Je ne reçois aucune erreur, et (très) le code similaire semble bien fonctionner d'autres endroits, ce qui me laisse penser que cela peut être lié à des problèmes similaires à ceux d'onCreate pour les animations rapportées ailleurs. J'ai aussi essayé quelques variantes du code ci-dessus.

Mes questions:

  1. Est-il un moyen plus facile/meilleure façon d'afficher une animation de chargement?
  2. Que puis-je faire pour que l'exemple ci-dessus fonctionne (si possible)?

Répondre

1

créer un nouveau thread et commencer ..

new Thread(new Runnable() { 
    public void run(){ 
     // some code that runs outside the ui thread. 
     frameAnimation.start(); 
    } 
}).start();