2012-04-11 12 views
5

Tengo una aplicación en la que utilicé efectos de entrada/salida de diapositivas predeterminados en actividades de estándares y desvanecimiento de entrada/salida en algunas actividades específicas.Android ICS Actividad Transición de fundido de entrada/salida Volver a la diapositiva

Me he dado cuenta de que el nuevo Android 4.X (ICS) tiene un valor por defecto diferente, que es exactamente fundido de entrada/salida.

¿Cómo puedo definir en mis actividades estándar mi efecto de entrada/salida de diapositivas?

que he estado tratando de definir 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); 
} 

Para reproducir el fundido de entrada/salida efecto que estoy 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); 
} 

, pero no han logrado reproducir con éxito eso.

Además, estoy usando este código en onCreate y onPause, ¿es correcto? ¿O hay un lugar mejor para ponerlo?

Gracias

PS: He visto este New Android 4.0 Screen Transitions Between Activities pero ahora respuesta ha sido siempre.

Respuesta

10

overridePendingTransition() debe llamarse inmediatamente después de iniciar la nueva actividad, por lo que la llamaría después de startActivity (intención), por ejemplo. Para realizar una configuración predeterminada, puede crear una clase que amplíe la actividad y anule la actividad de inicio, onBackPressed(), etc. para anular la transición. Por ejemplo:

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); 
} 



} 

Luego, sólo se extienden MyActivity en lugar de la actividad en sus actividades y las transiciones todos deben estar deslizándose por defecto.

+0

Las transiciones predeterminadas son slide_in_left y slide_out_right. Usaste otros nombres ... ¿así que puedes definir el XML para ellos? – neteinstein

+2

Por lo general, defino el mío, pero no veo ninguna razón por la que no pueda usar los valores predeterminados. – anakin78z

+0

+1 ¿cómo puedo llamar al predeterminado? ¿DEBO crear un nuevo xml para el valor predeterminado? – Roylee

Cuestiones relacionadas