45 Stimmen

Wie kann man eine Verzögerung von 1 Sekunde vor der Einstellung des Alphawertes der Ansicht erzeugen?

In meiner Anwendung werde ich das Alpha nach einer Animation setzen. Als wie:

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);

Aber ich möchte die Verzögerung von 1 Sekunde vor dem Alpha-Satz th die Ansicht. als Aufgrund dessen bin ich nicht in der Lage, die Animation dieses Layouts zu sehen. Also wie ist es möglich?

Danke.

88voto

Dmytro Danylyk Punkte 19482

In Ihrer Animation xml Datei können Sie verwenden android:startOffset Attribut:

android:startOffset int. The amount of milliseconds the animation delays after start() is called.

80voto

likebobby Punkte 1379

Können Sie nicht die

Android:startOffset int. Die Anzahl der Millisekunden, die die Animation verzögert, nachdem start() aufgerufen wurde.

in Ihrer Animation xml?

Véase die Dokumentation der Animationsressourcen .

29voto

weston Punkte 52445

Angenommen, Sie verwenden die Ansicht .animate() können Sie den Startoffset festlegen:

view.animate().x(100)
              .setDuration(5000)
              .setStartDelay(1000);

10voto

Kanagalingam Punkte 1916

Handler ist eine gute Technik, um dies zu erreichen.

new Handler().postDelayed(new Runnable()
{
   @Override
   public void run()
   {
     view.startAnimation(animation);
   }
}, 1000);

8voto

Observer Punkte 3458

In Ihrem Fall können Sie einfach wie folgt vorgehen

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);

hideMenu.setStartOffset(1000);

 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);

In diesem Fall können Sie den Wert der Startzeit dynamisch über die Aktivität steuern

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X