2012-04-11 11 views
5

Possiedo un'app in cui sono stati utilizzati gli effetti di diapositiva in entrata/uscita predefiniti sulle attività degli standard e la dissolvenza in entrata/uscita in alcune attività specifiche.Transizione attività ICS Android da Fade In/Out Torna a Diapositiva

Ho notato che il nuovo Android 4.X (ICS) ha un valore predefinito diverso, che è esattamente di tipo fade in/out.

Come posso definire sulle mie attività standard l'effetto di scorrimento in/out?

Ho cercato di definire con:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.slide_in_left);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.slide_out_right, 0); 
} 

Per riprodurre il fade in/out effetti sto usando:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.fade_in);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.fade_in, 0); 
} 

ma non sono riuscito a riprodurre con successo esso.

Inoltre, sto usando questo codice su onCreate e onPause, è corretto? O c'è un posto migliore per metterlo?

Grazie

PS: Ho visto questo New Android 4.0 Screen Transitions Between Activities ma ora risposta è stata fornita.

risposta

10

overridePendingTransition() deve essere chiamato immediatamente dopo l'avvio della nuova attività, quindi è necessario chiamarlo dopo startActivity (intent), ad esempio. Per fare un default è possibile creare una classe che estenda Activity e sovrascrivi startActivity, onBackPressed(), ecc. Per sovrascrivere la transizione. Per esempio:

public class MyActivity extends Activity { 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

@Override 
public void startActivity(Intent intent) { 
    super.startActivity(intent); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

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



} 

Poi, basta estendere MyActivity invece di attività nella vostra attività e le transizioni dovrebbero essere tutti scorrevoli per impostazione predefinita.

+0

Le transizioni predefinite sono slide_in_left e slide_out_right. Hai usato altri nomi ... quindi puoi definire l'XML per loro? – neteinstein

+2

Di solito definisco il mio, ma non vedo alcun motivo per cui non è possibile utilizzare i valori predefiniti. – anakin78z

+0

+1 come posso chiamare quello predefinito? Devo creare un nuovo xml come predefinito? – Roylee

Problemi correlati