IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Pb Changement de vue avec Animation + thread


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Pb Changement de vue avec Animation + thread
    Bonjour à tous,

    Voila ce que je veux faire:
    Je souhaite avoir une première vue (index.xml) composé d'une simple image avec animation. Dans l'exemple ci-dessous, j'ai changé la vue par une image car je ne comprends pas d'où viens mon pb.
    Je souhaite qu'au bout de 10s, une autre vue (main.xml) soit affichée automatiquement.

    J'ai tout basiquement fais quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     
       	Animation animation1 = AnimationUtils.loadAnimation(this, R.anim.animation);
     
    	final ImageView iv = new ImageView(this);
       	iv.setImageResource(R.drawable.google);
     
       	setContentView(iv);
     
     
       	iv.startAnimation(animation1);
     
          try{
     
        	   /* attends 10 s*/
        	   Thread.sleep(10000) ;
       	   setContentView(R.layout.main);
           }
            catch(Exception e){ }
        }
    Mon problème: soit j'ai l'animation mais pas le thread. et si j'enlève l'animation, j'ai le changement de vue avec le thread.
    Donc, comme ça marchait pas bien, j'ai changé par quelque chose d'un peu plus costaud:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
     
       	Animation animation1 = AnimationUtils.loadAnimation(this, R.anim.animation);
    	final Toast toast = Toast.makeText(this,  "hello", Toast.LENGTH_SHORT);
     
     
    	final ImageView iv = new ImageView(this);
       	iv.setImageResource(R.drawable.google);
     
       	setContentView(iv);
       Thread threadArrierePlan = new Thread(new Runnable(){
     
    	   public void run(){
    		try{
     
    			Thread.sleep(10000) ;
     
    		    setContentView(R.layout.main);
     
    		    toast.setGravity(Gravity.TOP, 0, 40);
    			toast.show();
    		}
    		   catch(Throwable t){}
     
    	   }
       });
       threadArrierePlan.start();
    J'affiche bien le toast mais même sanction. Donc je ne sais plus trop ou cherché là

    Merci pour vos aides et commentaire.

  2. #2
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Je pense pas qu'utiliser un thread soit la meilleur solution.
    Il y a des évenement récupérable sur les animation; Tu peux savoir quand elle se termine pour modifier ta view.
    Info

    D'ailleurs tu ne peux pas interagir avec ton UI depuis autre part que le main thread.

    Hésite pas à mettre le logcat complet si tu veux plus d'aide sur ton soucis actuel.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    ben le thread c'est juste parce que je ne voyais pas d'autre solution pour "attendre" 10s et afficher l'autre vue.
    S'il y en a d'autre, je suis preneur

    Pour le logcat, il n'y a rien de particulier à mon sens, pas d'erreur, ni warning
    02-20 15:12:38.190: D/dalvikvm(1558): GC_FOR_ALLOC freed 64K, 4% free 9933K/10243K, paused 111ms
    02-20 15:12:38.280: I/dalvikvm-heap(1558): Grow heap (frag case) to 13.603MB for 3991696-byte allocation
    02-20 15:12:38.452: D/dalvikvm(1558): GC_CONCURRENT freed <1K, 3% free 13830K/14151K, paused 10ms+19ms
    02-20 15:12:39.040: D/dalvikvm(1558): GC_FOR_ALLOC freed <1K, 3% free 13831K/14151K, paused 71ms
    02-20 15:12:39.300: I/dalvikvm-heap(1558): Grow heap (frag case) to 22.167MB for 8981296-byte allocation
    02-20 15:12:39.410: D/dalvikvm(1558): GC_CONCURRENT freed 0K, 2% free 22601K/22983K, paused 9ms+7ms
    02-20 15:12:40.912: D/gralloc_goldfish(1558): Emulator without GPU emulation detected.

  4. #4
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Si ton animation dure 10s, et que tu ajoutes un écouteur qui t'indique quand l'animation se termine (grace à Animation.AnimationListener et la méthode onAnimationEnd (voir lien que j'ai mit dans le poste précédent)) alors ton soucis de thread est réglé ?
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    super ça marche

    je ne connaissais pas.

Discussions similaires

  1. Animation de changement de page avec NgAnimate et ngView
    Par Yann1213 dans le forum AngularJS
    Réponses: 0
    Dernier message: 24/02/2014, 20h32
  2. Animation avec un Thread
    Par madiabd dans le forum 2D
    Réponses: 3
    Dernier message: 26/02/2009, 22h58
  3. Des problemes avec ces threads <pthread.h>
    Par nasamad dans le forum GTK+ avec C & C++
    Réponses: 26
    Dernier message: 07/07/2006, 12h46
  4. comment tourner la vue avec la souris
    Par delfare dans le forum OpenGL
    Réponses: 13
    Dernier message: 12/09/2004, 17h44
  5. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo