2012-12-12 15 views
5

Próbuję zrobić animację, która przesunie się z bieżącej pozycji do środka ekranu, a następnie przewróci się. Każdy poruszający się komponent działa poprawnie, ale gdy ustawię je wszystkie w zestawie z przesunięciem początkowym, animacja nie rozpocznie się, dopóki to przesunięcie się nie zakończy i wykona wszystkie animacje naraz. Każda pomoc w tym zakresie jest bardzo doceniana.Android - przesunięcie początkowe animacji nie działa prawidłowo

slide_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Slide down --> 
    <translate 
     android:fromYDelta="0%" 
     android:toYDelta="100%" 
     android:duration="1000"/> 

    <!-- Set alpha to fully opaque --> 
    <alpha 
     android:fromAlpha="0.8" 
     android:toAlpha="1.0" 
     android:duration="1000" /> 

    <!-- Flip image once it's in the center --> 
    <!-- ***** HERE IS THE only offset I set ****** --> 
    <scale 
     android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:pivotX="50%" 
     android:fromYScale="1.0" 
     android:toYScale="1.0" 
     android:startOffset="1000" 
     android:duration="200" /> 
</set> 

kod nazywając

Animation anim = AnimationUtils.loadAnimation(getActivity(), slideDirection); 
     anim.setAnimationListener(new AnimationListener() { 
      public void onAnimationStart(Animation animation) {    
      } 

      public void onAnimationRepeat(Animation animation) {     
      } 

      public void onAnimationEnd(Animation animation) { 
       mCallBack.categorySelected(view.getId()); 
      } 
     }); 

     view.clearAnimation(); 
     view.startAnimation(anim); 

Dzięki Dman

Odpowiedz

2

offsety Animacja zawsze liczona od początku animacji. Jeśli chcesz, aby Twoje animacje były odtwarzane jeden po drugim, musisz samodzielnie obliczyć przesunięcia.

Następujące będzie grać przełożyć na 1 sekundę, a po drugie następuje drugi skalę 200 ms -

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Slide down --> 
    <translate 
     android:fromYDelta="0%" 
     android:toYDelta="100%" 
     android:duration="1000"/> 

    <!-- Set alpha to fully opaque --> 
    <alpha 
     android:fromAlpha="0.8" 
     android:toAlpha="1.0" 
     android:startOffset="1000" 
     android:duration="1000" /> 

    <!-- Flip image once it's in the center --> 
    <!-- ***** HERE IS THE only offset I set ****** --> 
    <scale 
     android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:pivotX="50%" 
     android:fromYScale="1.0" 
     android:toYScale="1.0" 
     android:startOffset="2000" 
     android:duration="200" /> 
</set> 
+0

dzięki dla odpowiedzi. Nie szukam tego, że tłumaczenie i alfa będą wykonywane w tym samym czasie, z animacją klapki, która zaczyna się, gdy obraz przesunie się do środka i jest całkowicie nieprzezroczysty. – DMCApps

Powiązane problemy