2013-09-22 10 views
5

Così adesso per default il dialogo sta facendo questo zoomin fade out effetto quando viene respinto con dialog.dismiss();Override Dialog respingere() con il nuovo AlphaAnimation

come posso ignorarlo per essere il mio animazione?

AlphaAnimation fadeOut = new AlphaAnimation(1, 0); 
fadeOut.setDuration(600); 
view.setAnimation(fadeOut); 
view.startAnimation(fadeOut); 

EDIT:

Grazie alla the answer bellow ero in grado di capirlo. Invece di modificare il licenziamento, ho fatto l'animazione e poi l'ho licenziato in questo modo.

public void fadeOutHUD(View view) { 
     AlphaAnimation fadeOut = new AlphaAnimation(1, 0); 
     fadeOut.setDuration(800); 
     view.setAnimation(fadeOut); 
     view.startAnimation(fadeOut); 
     fadeOut.setAnimationListener(new Animation.AnimationListener() { 
      @Override 
      public void onAnimationStart(Animation animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animation animation) { 
       dismiss(); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) { 

      } 
     }); 
    } 

public void dismissHUD() { 
     fadeOutHUD(findViewById(R.id.progressHud)); 
    } 

e lo ha chiamato in questo modo dialog.dismissHUD();

+0

Dove stanno producendo il fine di fade out? Sto cercando di accedere all'intera finestra di dialogo come una vista in modo da poter sfumare come in questo caso, ma sono riuscito a far sbiadire il contenuto della finestra di dialogo (senza lo sfondo di sovrapposizione e il bordo bianco). – Gofilord

risposta

6

Non credo che è necessario eseguire l'override del Dialog.dismiss()

Basta animare la finestra come si voleva e alla fine di animazione, respingerlo.

@Override 
public void onAnimationEnd(Animation animation) { 
     dialog.dismiss(); 
} 
+0

allora come potrei chiamare il licenziamento per dirgli di chiamare l'animazione? –

+0

Capito, avevi ragione, aggiornerò la mia domanda per fornire una soluzione più dettagliata. Grazie ancora –

0

estendere la classe Dialog (si consiglia di utilizzare DialogFragment) e sovrascrivere la sua dismiss() utilizzando il proprio personalizzato Animation.

+0

Ho fatto questo e la finestra di dialogo è rimasta bloccata in un ciclo di visualizzazione e non andava via, tuttavia l'animazione si sarebbe sfarfallata come se fosse stata respinta, ma poi sarebbe tornata immediatamente. Inoltre non posso usare un DialogFragment, quando lo faccio non mi permette di usare 'findViewById()' –