2015-06-30 12 views
6

Vorrei impostare alcune animazioni nella mia finestra di dialogo personalizzata e vorrei farlo a livello di programmazione. So che posso farlo in questo modo con animazioni xml:Animazione finestra di dialogo personalizzata a livello di programmazione

<style name="DialogAnimation"> 
    <item name="android:windowEnterAnimation">@anim/slide_up_dialog</item> 
    <item name="android:windowExitAnimation">@anim/slide_out_down</item> 
</style> 


Dialog imageDiaglog= new Dialog(MainActivity.this,R.style.DialogAnimation); 

Ma mi piacerebbe farlo a livello di programmazione. Come posso impostare le mie animazioni create a livello di programmazione sui metodi show() e hide() di Dialog?

Grazie.

risposta

1

Non puoi perché la finestra di dialogo utilizza l'elemento di stile per la transizione dell'animazione. E Non è possibile impostare gli elementi di stile a livello di programmazione.

+0

OK grazie. È possibile con FragmentDialog programmaticamente? –

+0

Sì, è possibile –

+0

Se possibile, si prega di inviare la risposta. Vi do taglie a voi. grazie –

0

È possibile utilizzare DialogFragment e impostare l'animazione in onCreateDialog(Dialog) o onStart(). Esempio da here:

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dialog = super.onCreateDialog(savedInstanceState); 
    dialog.getWindow().getAttributes().windowAnimations = R.style.detailDialogAnimation; 
    return dialog; 
} 
+0

Ho bisogno di animazione programmaticamente .. non dal file di animazione –

+0

Dovresti essere in grado di usare 'getDialog(). getWindow(). setEnterTransition (yourTransition);'. Potrebbe essere necessario chiamare 'dialog.getWindow(). RequestFeature (Window.FEATURE_CONTENT_TRANSITIONS);' –