2010-11-17 15 views

Odpowiedz

8

Dodaj Animation.AnimationListener do Animation poprzez setAnimationListener(). W onAnimationEnd() słuchacza, zadzwoń pod numer setVisibility(View.INVISIBLE) na ImageView.

+0

Nie najlepsze rozwiązanie. Zobacz odpowiedź chrisa. –

+1

@ ClassStacker: Zapraszam do Twojej opinii. 'setFillAfter()' jest rzadko poprawną odpowiedzią, ponieważ nie działa tak, jak się tego oczekuje (np. 'setFillAfter()' na 'TranslateAnimation' powoduje, że zdarzenia dotykowe działają tylko w * starej * lokalizacji). W przypadku animacji alfa w całkowicie statycznym interfejsie użytkownika może on przetrwać, ale jeśli cokolwiek zmieni się w tym interfejsie, nie byłbym najmniej zaskoczony, gdy zobaczyłbym powrót alfa do jego pierwotnej wartości. W Androidzie 3.0 lub nowszym możesz oczywiście ustawić właściwość alfa widgetu. – CommonsWare

+0

Widzę; Nie wiedziałem o problemie "TranslateAnimation". Dobrze wiedzieć! Wspaniale podałeś tę motywację do swojego rozwiązania. –

16

Ustawienie fillEnabled i fillAfter na true zawsze działa dla mnie.

anim = new AlphaAnimation(0.3f, 1.0f); 
anim.setDuration(500); 
anim.setFillEnabled(true); 
anim.setFillAfter(true); 
<view>.startAnimation(anim); 
+0

Po drugie. Można to osiągnąć również w samym XML. –

+0

fajnie! Dzięki bracie. :) –

Powiązane problemy