2014-07-18 4 views
0

quand je clique sur le bouton alors une animation va de gauche à droite et de droite à gauche seulement pour la disposition de la section menu et selon cette animation la largeur de l'autre disposition (chef de famille doit être agrandir ou réduire ..Travailler avec l'animation ou la disposition linéaire

mon problème est que l'animation pour la mise en page du menu fonctionne correctement, mais la largeur d'autre mise en page ne pas réduire ou développer en même temps, comment puis-je faire cela.

mon code est ce

if(flagmenu) 
{ 
//menu layout set animation 
        lpmenu.startAnimation(animationFallout);   
        Thread t=new Thread(new Runnable() { 
         public void run() { 
          try { 
           Thread.sleep(2500); 
            runOnUiThread(new Runnable() { 
            public void run() { 
             lpmenu.setVisibility(View.GONE); 

} 
           }); 
         } catch (InterruptedException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
         } 
        }); 
        t.start(); 
       // lpmenu.setVisibility(View.GONE); 
        flagmenu = false; 
       } 
       else 
       { 
        lpmenu.startAnimation(animationFalling); 
        lpmenu.setVisibility(View.VISIBLE); 
        flagmenu = true; 
       } 

Répondre

0

D'abord, je vous suggère t o Utilisez ObjectAnimators pour y parvenir au lieu d'Animations, car l'animation ne change pas réellement la position de la vue. Ensuite, afin d'effectuer des animations simultanées avec des Animateurs, vous pouvez utiliser la classe AnimatorSet (méthode playTogether). Si vous avez besoin de supporter les anciennes versions d'Android, il existe une bibliothèque NineOldAndroids qui supporte les Animateurs. Une autre façon (sans animateurs) est d'utiliser AnimationSet (encore une fois, vous devriez ajouter des animations pour chaque vue que vous souhaitez déplacer) classe et mettre en œuvre AnimationListener changer les Layoutparams de votre point de vue (afin de mettre à jour la mise en page)

+0

tout d'abord je dis merci pour votre réponse –

+0

@Er Swati Agrawal, alors ma réponse a-t-elle été utile, ou peut-être devrait-elle être étendue? – Chaosit

2
Use this animation code here v is view group mean layout interpolatedTime of animation work fine for me . if code for collapse if u want expend then use + sine 
     Animation a = new Animation() { 
      @Override 
      protected void applyTransformation(float interpolatedTime, 
        Transformation t) { 
       if (interpolatedTime == 1) { 
        v.setVisibility(View.GONE); 
       } else { 
        v.getLayoutParams().width= initialwidth 
          - (int) (initialwidth * interpolatedTime); 
// replace - to + for expend 
        v.requestLayout(); 
       } 
      } 

      @Override 
      public boolean willChangeBounds() { 
       return true; 
      } 
     }; 
+0

mais pour cela, je dois utiliser la classe de transformation –

+0

que cette classe contient déjà dans android sdk .. –

Questions connexes