11

Ho 2 attività e voglio creare una transizione animata tra le due attività in modo tale che le visualizzazioni di entrambe le attività scorrano come se la seconda attività spingesse la prima attività verso l'alto. nella mia prima attività che uso:overridePendingTransition mostra una seconda attività troppo rapidamente

Intent iSecondActivity = new Intent(FirstActivity.this,SecondActivity.class); 
FirstActivity.this.startActivity(iSecondActivity); 
FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

e la mia slide.xml assomiglia:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="0" 
     android:toYDelta="-100%p" 
     android:duration="2000" 
    /> 
</set> 

e la mia slide2.xml assomiglia:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate 
     android:interpolator="@android:anim/decelerate_interpolator" 
     android:fromYDelta="100%p" 
     android:toYDelta="0" 
     android:duration="2000" 
    /> 
</set> 

tuttavia, il problema è che quando viene chiamato "startActivity", la vista della seconda attività è già visualizzata mentre la transizione inizia a scorrere. Mi piacerebbe vedere la vista della prima attività scorrere verso l'alto ... ma invece vedo scorrere la vista della seconda attività (visualizzata sopra la vista della prima attività).

il secondo problema è che sto vedendo la vista di sostituzione come vista della prima attività. Vorrei che la visualizzazione sostitutiva fosse la visione della seconda attività che sta spingendo verso l'alto.

È difficile da spiegare, quindi per favore fatemi sapere se posso spiegare qualcosa in modo più dettagliato. mi scuso per qualsiasi confusione, e grazie per aver letto questo.

P.S. sto usando le visuali testuali ... credo che sia troppo veloce? Sto anche usando Motorola Razr, non che dovrebbe avere importanza.

risposta

9

Nevermind, che è stato un errore stupido - non ho capito che cosa la documentazione intende per "entrare animazione" vs "animazione in uscita". ho bisogno di scambiare le XMLs modificando:

FirstActivity.this.overridePendingTransition(R.anim.slide, R.anim.slide2); 

in

FirstActivity.this.overridePendingTransition(R.anim.slide2, R.anim.slide); 
+0

esiste un modo per utilizzare Animator? –

+0

ho anche affrontato lo stesso problema, ma risolto dalla tua risposta, ma è molto strano. Comunque, grazie –

6

basta aggiungere questi alla vostra slide2.xml:

android:startOffset="2000" 

questo modo l'animazione per il 2 ° attività avrà inizio solo dopo l'animazione tua prima di attività è completa.

+0

Siamo spiacenti, non sono stato chiaro sulla mia domanda. Avevo pensato che il problema fosse visualizzare troppo velocemente. ma si scopre che non capisco cosa intendessero per "inserimento di parametri di animazione" nella chiamata a "overridePendingTransition". –

+0

tuttavia, non sapevo che si può ritardare l'animazione. è piuttosto utile +1 –

Problemi correlati