2010-11-24 25 views
0

Est-ce que quelqu'un sait comment lancer une nouvelle activité avec animation de rotation?basculer entre activité avec animation de rotation

Je vais essayer d'expliquer ce que je veux faire:

Par exemple, j'ai cherché android app exemple dans l'échantillon SKD « apidemos » et je l'ai trouvé une classe nommée com.exemple.android.apis.animation.Rotate3dAnimation.java et com.exemple.android.apis.animation.Transition3d.java. Ces classes me permettent de basculer entre l'image avec effet de rotation. Je voudrais savoir s'il y a un moyen de faire la même chose mais au lieu de l'image, je serai une activité (avec une nouvelle mise en page).

+0

Merdin: Pour gagner de la réputation, et de faire d'autres pour répondre à votre question, Votez et acceptez les bonnes réponses à vos questions –

Répondre

3

Le gestionnaire de fenêtres ne prend pas en charge les transformations 3D à ce stade; Puisque chaque activité est une fenêtre, les animations entre activités sont des animations de fenêtre, elles sont donc limitées à ce que le gestionnaire de fenêtres supporte.

0

Voici comment nous pouvons accomplir cela. Supposons que nous voulions passer de l'activité A à B. D'abord, nous animerons l'activité A, puis nous commencerons l'activité B dans la fonction surchargée "onAnimationFinished". Cela garantira que l'activité B est démarrée seulement après que l'animation de l'activité A est terminée.

// we will only animate activity A here. 
// The activity B will be animated from its onResume() - be sure to implement it. 

final Intent intent = new Intent(getApplicationContext(), B.class); 
// disable default animation for new intent 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
//Animate A 
ActivitySwitcher.animationOut(findViewById(R.id.A), getWindowManager(), new ActivitySwitcher.AnimationFinishedListener() { 
     @Override 
     public void onAnimationFinished() { 
      // Start activity B 
      startActivity(intent); 
     } 
    }); 

maintenant remplacer "onResume" fonction de l'activité B

@Override 
protected void onResume() { 
// animateIn this activity 
ActivitySwitcher.animationIn(findViewById(R.id.help_top), getWindowManager()); 
    super.onResume(); 
} 

Vous pouvez voir ici par exemple travailler

http://blog.robert-heim.de/karriere/android-startactivity-rotate-3d-animation-activityswitcher/comment-page-1/#comment-12025