web-dev-qa-db-fra.com

Démarrer une nouvelle activité sans animation de transition dans Android 1.6

Je suis conscient que, à partir du niveau 5 de l'API, il est possible de spécifier un indicateur afin d'empêcher l'application de l'animation normale lorsque je lance une nouvelle activité:

myIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

Toutefois, ma question est la suivante: existe-t-il un moyen de réaliser la même chose dans une application prenant en charge Android 1.6?

29
Matt Colliss

Utilisez ceci: getWindow().setWindowAnimations(0); dans la Activity qui commence.

20
Wroclai

Dans les versions les plus récentes, vous souhaitez remplacer la transition par 0,0 peu de temps après le début de l'activité:

Intent i = new Intent(this, YourNewActivity.class); 
startActivity(i);
overridePendingTransition(0,0);

J'ai essayé ceci sur les versions 2.1 et 4.0.3, cela a fonctionné pour moi. =)

Je l'ai trouvé dans la documentation ici

51
gulchrider

Cette solution a fonctionné pour moi (Android 2.2):

Intent intent = new Intent(getContext(), YourClass.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
6
songokuhd

Pour votre information, je suis sur 4.4.2 et ce sont les seules choses que j'ai trouvé qui fonctionnent:

Pour empêcher l'animation d'ouverture: dans onCreate () de l'activité de lancement, ajoutez overridePendingTransition (0,0).

Pour empêcher l'animation de fermeture: après finish (), appelez immédiatement overridePendingTransition (0,0).

CELA NE FONCTIONNE PAS (du moins pas sur ma version 4.4.2): (1) appeler getWindow (). SetWindowAnimations (0) dans onCreate () (passer un nombre non-nul NE FONCTIONNE, mais c'est un vilain hack depuis il attend un resID) et (2) appelant overridePendingTransition (0,0) immédiatement après startActivity () - l'animation est toujours présente.

5
Steve B

mettre ci-dessous le code sur onCreate of Activity:

getWindow().setWindowAnimations(0);
0
Hiren Patel