2013-09-22 21 views
5

standardmäßig So jetzt() mit neuer AlphaAnimation entläßt der Dialog dieser zoomin tut Effekt ausgeblendet, wenn es mit dialog.dismiss();außer Kraft setzt Dialog

entlassen wird, wie ich außer Kraft setzen kann meine eigene Animation, zu sein?

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

EDIT:

Dank the answer bellow ich war in der Lage, es herauszufinden. Anstatt die Kündigung zu ändern, habe ich die Animation dann so abgetan.

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

Und nannte es wie so dialog.dismissHUD();

+0

Wo bekommen Sie die Ansicht auszublenden? Ich versuche auf den gesamten Dialog als Ansicht zuzugreifen, so dass ich ihn hier ausblenden kann, aber ich habe es nur geschafft, den Inhalt des Dialogs zu verblassen (ohne den Overlay-Hintergrund und den weißen Rahmen). – Gofilord

Antwort

6

ich Ihnen die Sie animieren nur den Dialog Dialog.dismiss()

außer Kraft setzen müssen nicht denken, wie Sie und am Ende wollte von Animation, entlassen es.

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

dann zu verwenden, wie würde ich die Entlassung anrufen, um es zu sagen, um die Animation zu nennen? –

+0

Ich habe es herausgefunden, Sie waren so richtig, ich werde meine Frage aktualisieren, um eine detailliertere Lösung zu bieten. Danke noch einmal –

0

die Dialog Klasse erweitern (es wird Sie DialogFragment verwenden empfohlen) und überschreiben seine dismiss()Animation Ihre eigenen verwenden.

+0

Ich tat dies und der Dialog steckte gerade in einer Schleife des Zeigens, und würde nicht weggehen, jedoch würde es die Animation flackern, als würde es entlassen, aber dann sofort zurückkommen. Außerdem kann ich kein DialogFragment verwenden, wenn ich das tue, erlaubt es mir nicht, 'findViewById()' –

Verwandte Themen