2016-04-17 8 views
0

Ich versuche, Animation mit meiner benutzerdefinierten Ansicht zu tun. Diese benutzerdefinierte Ansicht ist eine Kombination aus anderen Ansichten. Ich versuche eine sehr einfache Animation zu machen und sie wird ausgelöst, wenn auf eine Schaltfläche geklickt wird. Ich möchte, dass die Ansicht in 2 Sekunden verschoben wird und verschwindet. Aber es scheint, dass es in weniger als 2 Sekunden verschwindet. Ich habe versucht, die Dauer zu erhöhen, aber es hat nicht geholfen.Android: Animation funktioniert nicht für die angegebene Dauer

public void hideBar() { 
     this.setVisibility(View.GONE); 
    } 

private void animateAndHide(){ 

     this.animate() 
      .translationY(0) 
      .setDuration(2000) 
      .alpha(0.0f) 
      .setListener(new AnimatorListenerAdapter() { 
       @Override 
       public void onAnimationEnd(Animator animation) { 
        super.onAnimationEnd(animation); 
        hideBar(); 
       } 
      }); 
    } 

Ich bin mir nicht sicher, was ich hier falsch mache.

+0

Besser, xml der Animation zu erstellen, und definieren Sie Ihre Dauer dort :) –

+0

haben Sie die Animationszeit gemessen oder ist es nur Ihre Impression? – pskink

+0

@JhamanDas Ich bin mir nicht sicher, wie man die XML-Animation definiert. Ich würde mich über jede Bezugnahme freuen. – Rakesh

Antwort

0

Das mit mir passiert ist, bevor der Blick unsichtbar zu sein scheint, weil die Alpha sehr niedrig wird, bevor es 0 so wird wie alpha einen anderen Wert versuchen 0,1

+0

Ich habe versucht mit anderen Alpha-Wert, aber ich habe keine Verbesserung gesehen. – Rakesh

0

Sie setStartOffset(2000) versucht haben? Der Offset verzögert die Animation. Wenn Sie die Animation nach einer bestimmten Zeit starten möchten, verwenden Sie die Offset-Methode.

+0

Ich sehe keine 'setStartOffset()' Methode, also habe ich mit 'setStartDelay()' Methode versucht. Es verbessert nichts, das Ergebnis ist das gleiche. – Rakesh