116 votes

Comment fournir l’animation lors de l’appel d’une autre activité dans Android ?

J’ai deux activités A et B. Je veux avoir le psy Animation lorsque l’activité A appelle B et maximiser l’animation lorsque l’activité B appelle A. Je n’ai besoin les fichiers xml d’animation pour cela.

Lorsque nous demandons une autre activité dans Android, il donne son animation par défaut, puis il appelle animation rétractables.

Ce que je veux, c’est que l’animation par défaut ne doit pas se produire et l’animation que je veux doit avoir lieu.

Pouvons-nous réellement donner l’animation lors de l’appel d’une autre activité ?

152voto

Mannaz Points 6351

Vous pouvez empêcher l'animation par défaut (Diapositive à partir de la droite) avec l' Intent.FLAG_ACTIVITY_NO_ANIMATION indicateur dans votre intention.

c'est à dire:

Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);

ensuite, dans votre Activité, il vous suffit de spécifier votre propre animation.

Cela fonctionne aussi pour les 1,5 API (Niveau 3).

Pour les applications qui ciblent les API de niveau 5+ il y a les Activités overridePendingTransition méthode. Il prend deux Id de ressource pour les entrants et les sortants des animations. Une id 0 de désactiver les animations. Appelez immédiatement après l' startActivity appel.

c'est à dire:

startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

78voto

Praveen Points 29841

Vous devez utiliser OverridePendingTransition méthode pour l'atteindre, qui est dans la classe d'Activité. Exemple d'Animations dans le apidemos exemple du res/anim dossier. Vérifiez qu'il. Plus de vérifier la démo en ApiDemos/App/Activité/de l'animation.

Exemple:

@Override
public void onResume(){
    // TODO LC: preliminary support for views transitions
    this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
}

29voto

Blundell Points 28342

A écrit un tutoriel afin que vous pouvez animer votre activité dedans et dehors,

Profitez de :

http://blog.Blundell-apps.com/Animate-an-activity/

3voto

phreakhead Points 2265

Jelly Bean ajoute le support pour cela avec la méthode ActivityOptions.makeCustomAnimation() . Bien sûr, puisque c’est seulement sur Jelly Bean, il ne vaut quasiment rien à toutes fins pratiques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X