50 votes

Afficher l'activité de bas en haut

Je veux afficher un activity à un autre de bas en haut en utilisant l'animation Intent .

Donnez-moi un exemple comme celui-ci

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);

avec une animation de bas en haut.

151voto

Mark Allison Points 10123

Définissez une animation dans res/anim/slide_in_up.xml :

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="100%p" android:toYDelta="0%p"
    android:duration="@android:integer/config_longAnimTime"/>

et un autre à res/anim/slide_out_up.xml :

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="0%p" android:toYDelta="-100%p"
    android:duration="@android:integer/config_longAnimTime"/>

Appliquez-les ensuite pour appeler startActivity :

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

Une introduction à l'animation Android aquí qui pourrait vous aider davantage.

10voto

Aklesh Singh Points 49

Comme je l'ai googlé glissant vers le haut de la transition et a atterri ici, mais Mark réponse est incomplète sans transition impliquée sur le retour à la même activité.

Fin d'activité en surnombre

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_from_top,R.anim.slide_in_top);
}

terminer()

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                finishAfterTransition();
            }else finish();

slide_from_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="-100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_shortAnimTime"/>

slide_in_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="100%p"
android:duration="@android:integer/config_shortAnimTime"/>

0voto

Houcine Points 9248

Premièrement : animez la mise en page de votre activité 1 ,, Deuxièmement : à la fin de cette activité, démarrez votre deuxième activité, et animez son contenu.

Utilisez TranslateAnimation(int fromX,int toX, int fromY , int toY) ;

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