Question

Quelle est la meilleure façon d'aller à une nouvelle activité, mais la font ressembler à des diapositives d'activité vers la gauche et la nouvelle activité entre dans l'écran? J'utilise des intentions d'appeler la nouvelle activité, est que la façon de le faire si je veux que l'application soit léger?

Pour expliquer un peu mieux: sur mon téléphone Android que je peux glisser la vue avec la maison Meny à droite et pénètre ensuite dans un flux d'ami de la gauche et se déroule à l'écran. Je veux le faire dans mon application avec buttonclicks, il est le « glissais » je suis après. Thanks!

Était-ce utile?

La solution

Dans Android OS 2.1 ou plus tard, je pense que vous pouvez utiliser le OverridePendingTransition () méthode pour fournir le type de transition entre les activités des animations que vous recherchez.

Tout d'abord, définir un couple de ressources d'animation dans / res / Anim / . En voici un qui est nommé right_slide_out.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="500"
    />
</set>

Un autre appelé right_slide_in.xml :

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="700"
    />
</set>

Ensuite, lorsque vous commencez la nouvelle activité, utilisez la méthode OverridePendingTransition comme dans:

startActivity(intent);
overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);

Cela devrait gérer les animations de transition pour le démarrage de l'activité.

Pour l'inverse, lorsque cette activité se termine et vous êtes revenir à l'original, il est un peu plus brumeuse.

Si vous avez un certain contrôle de l'interface utilisateur que les extrémités que l'activité et les appels Activity.finish (), vous pouvez simplement ajouter le overridePendingTransition () juste après.

Pour gérer le cas où l'utilisateur se termine l'activité en appuyant sur le bouton de retour, utilisez quelque chose comme ce qui suit:

@Override
public void onBackPressed() 
{

    this.finish();
    overridePendingTransition  (R.anim.right_slide_in, R.anim.right_slide_out);
}

Autres conseils

Vous pouvez utiliser un left_slide_out.xml (juste changer le toXDelta dans right_slide_out.xml de Josh à lire -100% p), de faire disparaître l'ancienne activité vers la gauche (et ont également la même durée sur les deux animations) .

Oui, utiliser avec les est le moyen standard pour démarrer une autre activité, et fait habituellement la chose glisser que vous mentionnez. par exemple. startActivity (nouvelle intention (ce, myNextActivity.class)); le fera.

Jems est correct. Par défaut, vous obtiendrez une animation de glissement lors du lancement d'une nouvelle intention.

Si vous êtes à la recherche d'une animation plus personnalisée, vous pouvez utiliser overridePendingTransition . Gardez à l'esprit, il a été ajouté dans l'API de niveau 5. Voir cette API démo exemple d'utilisation.

Il y a un peu de confusion quant à ce que l'entrer et animations de sortie sont. Pour ceux qui sont encore réfléchir dessus, voici un modèle ..

overridePendingTransition(
    enterAnimationForCalledActivity, 
    exitAnimationForCallingActivity
);

Ceci devrait probablement effacer l'air un peu.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top