2010-07-29 4 views
1

J'ai essayé de résoudre ce problème pendant des jours mais maintenant j'essaye ma chance ici. J'utilise une charge paresseuse pour montrer mes images dans un adaper personnalisé. Je veux fondre dans les images car elles sont chargées.Comment afficher la ligne suivante avant que l'animain soit terminé

Cela fonctionne mais le fil s'arrête alors que l'animation est activée

public void run() 
    { 
     if(bitmap!=null) { 
    myProgressBar.setVisibility(View.INVISIBLE); 
    imageView.setVisibility(View.VISIBLE); 
    Animation animation = new AlphaAnimation(0.0f,1.0f); 
    animation.setDuration(800); 
    imageView.startAnimation(animation); 
    imageView.setImageBitmap(bitmap); 
     }else { 
      myProgressBar.setVisibility(View.VISIBLE); 
      imageView.setVisibility(View.INVISIBLE); 
      imageView.setImageResource(); 
     } 

ce que je veux faire est de montrer la ligne suivante, même si le animaion de privius ne sont finis.

Des idées?

Répondre

0

Il en est ainsi parce que le fil n'a plus rien à exécuter après la ligne

imageView.setImageBitmap(bitmap); 

est atteinte.

Bien que vous définissiez une durée de 800 ms, Java n'attend pas sur la ligne startAnimation tant que ces 800 ms ne sont pas terminés. Si vous voulez arrêter votre thread une fois l'animation terminée, je vous recommande d'utiliser un AnimationListener pour être averti lorsque l'animation se termine.

+0

ceci est la version originale de l'imageloaderclass que j'utilise: http://stackoverflow.com/questions/541966/android-how-do-i-do-a-lazy-load-of-images-in-listview/3068012 # 3068012 J'ai ajouté une barre de progression et je veux fondre l'image., La barre de progression est là et l'image s'estompe mais l'image suivante dans les autres lignes de la liste est affichée avant que l'animation soit terminée. – FoJjen

Questions connexes