34

Dans mon application Android, je suis en train de créer une méthode qui affiche toutes les activités et affiche la première activité.Transition d'animation entre les activités utilisant FLAG_ACTIVITY_CLEAR_TOP

J'utilise ce code:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
this.startActivity(intent); 

Comme je l'ai remarqué que la transition était encore à gauche à l'animation à droite, ce que quelqu'un sait s'il y a un moyen de changer l'animation du système lors du démarrage d'une activité?

En fait, je voudrais idéalement avoir droit à la transition à gauche (comme lorsque le bouton de retour est taraudée)

Merci pour l'aide!

Répondre

45

CoolMcGrr a raison, vous souhaitez utiliser overridePendingTransition(int enterAnim, int exitAnim).

Pour obtenir plus précisément la norme de transition "bouton retour", je les utilise comme les enterAnim et exitAnim transitions:

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 
+1

Semble être une meilleure réponse à moi, étant donné que E-Riz a effectivement répondu à la question plutôt que de simplement poster un lien comme l'a fait CoolMcGrrr. Encore une fois, E-Riz était 8 mois plus tard pour y répondre. – ArtOfWarfare

+0

plus tard, mais mieux répondre –

+0

Où appelleriez-vous le overridePendingTransition? Avant ou après startActivity? – Apqu

5

Problème se produit de nos jours car pré-ICS et ICS ont différentes transitions d'activité intégrées. Ce est beaucoup plus propre que de définir votre propre animation et SDK indépendant:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION); 
this.startActivity(intent); 
finish(); 

Cela va démarrer l'activité (non visible encore) et jouer la transition « de fin d'activité » à la nouvelle activité.

6

J'ai utilisé ce code:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 

Vous pouvez voir ces exemples GmailAnimation ou LopeAnimations. Aussi, vous pouvez voir plus dans ce Blog.

Questions connexes