2012-05-25 9 views
8

Mam widok elementu ImageButton na układzie. Jeśli użytkownik kliknie przycisk ImageButton, przycisk powinien zaniknąć.Android Alpha Animation: Wartość alfa przeskakuje z powrotem do starej wartości po zakończeniu animacji

Przyciski Fadeout animacja zostanie uruchomiona tak:

public void buttonClicked(View aButton){ 

    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f); 
    aAnim.setDuration(500); 

    aButton.startAnimation(aAnim); 

} 

To działa, ale jak tylko ImageButton jest wyciszony, jego wartość alfa przeskakuje z powrotem do 1,0 i jest widoczny przycisk ponownie.

Rozwiązałem go tymczasowo za pomocą odbiornika animacji, który ustawia ButtonImage na niewidoczny na końcu animacji, ale wydaje mi się to dziwnym rozwiązaniem dla mnie.

Co muszę zrobić, aby zachować wartości Alfa w ostatniej wartości animacji?

Dziękuję.

+0

Twoje "dziwne rozwiązanie" to droga. Jest to znany problem z animacjami Androida przed plastrem miodu. Łatwiejszą metodą jest MikeT, ale nie zawsze działa tak, jak byś tego oczekiwał. –

Odpowiedz

22

spróbuj aAnim.setFillAfter(true);

+0

Dziękuję Mike! To jest to! – Tom

1

Jeśli chcesz ustawić nową wartość, gdy animacja zakończeniu należy ustawić „setFillAfter” true.

public void buttonClicked(View aButton){  
    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f); 
    aAnim.setDuration(500); 

    aAnim.setFillAfter(true); 
    aButton.startAnimation(aAnim); 
} 
+0

aAnim.setFillAfter (true); <- Animacja pobiera modyfikator, a nie sam przycisk. – LoungeKatt

Powiązane problemy