2013-09-22 6 views
5

Więc teraz domyślnie Dialog robi to zoomin zanikanie efektu gdy robi odwołany z dialog.dismiss();Przestawianie Dialog odrzucenie() z nowym AlphaAnimation

jak mogę zastąpić go mieć mój własny animacji?

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

EDIT:

Dzięki the answer bellow byłem w stanie zrozumieć. Zamiast modyfikować zwolnienie, zrobiłem animację, a następnie odrzuciłem ją w ten sposób.

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

i nazwał go tak jak dialog.dismissHUD();

+0

Gdzie masz widok na wyciszanie? Próbuję uzyskać dostęp do całego okna dialogowego jako widoku, więc mogę go zignorować tak jak tutaj, ale udało mi się tylko, aby zawartość okna zniknęła (bez tła nakładki i białej ramki). – Gofilord

Odpowiedz

6

Nie sądzę, trzeba zastąpić Dialog.dismiss()

Wystarczy ożywić dialog, jak chcesz i na koniec animacji, odrzucam.

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

, a następnie w jaki sposób nazwać odwołanie, aby powiedzieć, aby zadzwonić do animacji? –

+0

Wyliczyłem, że masz rację, zaktualizuję moje pytanie, by dostarczyć bardziej szczegółowe rozwiązanie. Dzięki jeszcze raz –

0

rozszerzyć klasę Dialog (zaleca się użyć DialogFragment) i zastąpić swoją dismiss() stosując swój własny Animation.

+0

Zrobiłem to, a Dialog po prostu utknął w pętli pokazywania i nie odejdzie, jednak migotałoby animację, jakby to było zwalniające, ale zaraz wróciło. Również nie mogę używać DialogFragment, gdy robię to nie pozwala mi użyć 'findViewById()' –

Powiązane problemy