2012-08-14 11 views
8

Mam ViewFlipper, który uruchamia animację widoku po wywołaniu showPrevious. Animacja działa dobrze. Ale problem zaczyna się od opóźnienia ponad 1 sekundy. Teraz to nie wydaje się dużo, ale poważnie opóźnia korzystanie z aplikacji.ViewFlipper o "dużym" opóźnieniu

Moje animacje wyglądają tak;

Animation inFromLeft = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, -1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
inFromLeft.setDuration(350); 
inFromLeft.setInterpolator(new LinearInterpolator()); 

Animation outtoRight = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, +1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
outtoRight.setDuration(350); 
outtoRight.setInterpolator(new LinearInterpolator()); 

ustawić animacje za pomocą setInAnimation i setOutAnimation;

setInAnimation(inFromLeft); 
setOutAnimation(outtoRight); 

A potem po prostu uruchomić animację używając showPrevious

Czy jest jakiś powód, animacje zaczyna z opóźnieniem ponad 1 sekund, startTime dla animacji jest -1 i startOffset 0.

Odpowiedz

2

Dwie sugestie. Najpierw, jeśli to możliwe, przełącz się na ViewPager. Po drugie, jeśli pierwszy nie jest możliwy, użyj animacji opartych na XML. Przesyłanie treści poza kod i do zasobów jest zwykle wygraną.

+0

Rozwiązaniem było przejście do ViewPagera, animacja nie jest dokładnie tą, którą chciałem, ale opóźnienie zniknęło. Zmiana animacji na XML nie zmieniła niczego. – Thys

1

Czy na pewno opóźnienie ma miejsce w animacji? Czy próbowałeś dodać trochę rejestrowania, w tym metodę startAnimation z AnimationListener?

Jeśli masz pewność, że opóźnienie nastąpi po uruchomieniu animacji, możesz spróbować użyć opcji traceview między rozpoczęciem animacji i po jej zakończeniu (ponowne użycie AnimationListener). Dzięki temu dowiesz się, co robi Android w międzyczasie.

0

Wobec tego samego problemu co @MrThys, ale widząc to tylko na urządzeniach Gingerbread. Brak takich problemów na urządzeniach JellyBean.

+0

To jest komentarz, a nie odpowiedź. – Joel

+0

Masz rację. Nie mogłem jednak głosować/komentować faktycznego stanowiska i mam ten sam problem. Wypróbowałem oparte na XML animacje i nie pomogły. – user1102412

+0

To nie usprawiedliwia opublikowania go jako odpowiedzi. Poczekaj, aż uzyskasz wystarczającą reputację lub zadaj osobne pytanie. – Joel

Powiązane problemy