Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Problème Animation

    9 mai 2012 à 22:11:30

    Bonsoir,

    Voilà, j'ai un problème : lorsque je fais une animation sur un composant, tout se passe bien, mais lorsque je tente de relancer une animation sur le même composant, rien ne se passe, et apparemment l'animation ne se lance pas ( j'ai vérifié ça avec un Toast.makeText dans la méthode onAnimationStart ).
    Je ne sais pas comment faire ... :euh: .
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2012 à 13:13:16

      Personne ne saurait m'aider ?
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2012 à 11:50:41

        Bonjour,
        je pense que si tu mettais ton code, plus de personnes pourraient te repondre.
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2012 à 20:27:22

          Bonsoir,

          En effet cela pourrait aider,

          Un exemple :

          public TextView Jouer = null;
          Jouer = (TextView)findViewById(R.id.Sous_cadre1);
          
          Anim2 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, (float) -(0.675*hauteur));
          Anim2.setDuration(750);
          Anim2.setAnimationListener(this);
          Anim2.setFillAfter(true);
          
          Anim3 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, (float) -(0.522*hauteur));
          Anim3.setDuration(425);
          Anim3.setAnimationListener(this);
          Anim3.setFillAfter(true);
          
          Jouer.startAnimation(Anim2);
          
          @Override
          	public void onAnimationEnd(Animation animation) 
          	{
          		if (animation == Anim2)
          		{Jouer.startAnimation(Anim3);}
          	}
          


          Voilà c'est un exemple (ce n'est pas exactement comme ça que je procède mais c'est pour simplifier la lecture) et donc au moment de "relancer" une autre animation, il ne se passe rien.
          Bonne fin de soirée :)
          • Partager sur Facebook
          • Partager sur Twitter
            14 mai 2012 à 12:02:14

            Bonjour,

            Je ne sais pas trop comment tu t'y prends mais j'utilise une déclaration xml pour la répétition, voici mon code.

            Animation animation  = AnimationUtils.loadAnimation(this.getApplicationContext(), R.anim.fadein);
            		try
            		{
            			TextView MessageScan = (TextView) this.findViewById(R.id.messageScanCard);
            			MessageScan.startAnimation(animation);
            		}
            		catch (Exception e) 
            		{
            			e.printStackTrace();
            		}
            


            Déclaration fadein.xml dans repertoire res/anim

            <?xml version="1.0" encoding="utf-8"?>
            <alpha xmlns:android="http://schemas.android.com/apk/res/android"
                android:duration="3000"
                android:fillAfter="true"
                android:fromAlpha="1.0"
                android:toAlpha="0.2"
                android:interpolator="@android:anim/decelerate_interpolator"
                android:pivotX="50%"
                android:pivotY="50%"
                android:repeatCount="infinite"
                android:repeatMode="reverse"/>
            


            Bon courage !
            • Partager sur Facebook
            • Partager sur Twitter
              14 mai 2012 à 22:06:41

              Bonsoir,

              Merci de votre réponse mais en réalité je ne répète pas du tout deux animations, elles sont à la fois différentes (la première est une TranslateAnimation, la deuxième une ScaleAnimation) et la deuxième ne se lance pas juste à la fin de la première, c'était juste à titre d'exemple; en réalité j'attends un évènement pour lancer la deuxième animation mais lorsque je la lance rien ne se passe.
              Voilà, bonne soirée à vous
              • Partager sur Facebook
              • Partager sur Twitter
                15 mai 2012 à 16:30:57

                Bonjour,

                Je n'ai pas compris ce que tu me proposais de faire avec ce qui a été dit dans le lien ?

                Edit : Le problème ne vient pas de l'animation, il me semble que ça vient plutôt du composant qui se "bloque" parce que quand j'essaye de modifier le texte dans le bouton après que l'animation soit fini rien ne se passe non plus ...
                • Partager sur Facebook
                • Partager sur Twitter
                  15 mai 2012 à 17:12:32

                  Apparemment il faut encapsuler le code onAnimationEnd dans

                  Anim1.setAnimationListener(new AnimationListener() { });

                  Ensuite pour modifier le texte tu dois faire qqchose comme


                  private TextView monText;
                  
                      onCreate()
                      {
                          monText = (TextView)findViewById(R.id.monText);
                      }
                  
                      onModif()
                      {
                          monText.setText("blabla");
                      }
                  }
                  


                  En gros il faut garder la référence sur ton objet.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 mai 2012 à 19:49:03

                    C'est une bonne idée, j'essaye et je te tiens au courant :)
                    Merci

                    Edit : Après réflexion je ne suis pas sur d'avoir bien compris ce que tu veux dire .. Peux-tu essayer de me l'expliquer différemment s'il te plait :euh:
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [Android] Problème Animation

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown