2013-02-01 5 views
8

Mam element ImageView, który tworzę w moim kodzie i umieszczam wewnątrz mojego RelativeLayout. Ustawić obraz jako Invisible zacząć od stosując następujący kod:Android Alpha Fade w animacji Numer

arrow.setVisibility(View.INVISIBLE); 

Następnie zdefiniowano Fade-alfa animację poprzez XML:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false" 
android:fillEnabled="true" 
android:fillAfter="true" 
android:fillBefore="true"> 

<alpha 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:startOffset="100" 
    android:duration="300" /> 

/set> 

Aby uruchomić animację:

ja po prostu zadzwonić następujące czynności, aby uruchomić animację

myview.startAnimation(myanimation); 

problem widzę jest to, że moim odbytu powoduje, że ImageView migocze przy pełnej widoczności, a następnie przechodzi przez animację alfa 0 na 1. Jak to naprawić? Nie mogę ustawić początkowej wartości alfa na 0, ponieważ animacja alfa oparta jest na wartości procentowej, a nie bezwzględnej. (np .: 0 * wartość prądu do 1 * wartość bieżąca)

Każda pomoc zostanie bardzo doceniona.

+0

Cóż wygląda na to, że problem jest spowodowany uruchamianie animacji po zakończeniu innej animacji dla innego obiektu widoku. Czy ktoś może polecić poprawkę? –

+0

Android zadba o anulowanie kolejnej animacji w tym samym widoku. Mówisz, że jest to * inny * widok, który ma interferującą animację. Być może możesz anulować to poprzez 'clearAnimation()'? –

+0

Zaczynam myśleć, że ten problem to tylko błąd Androida. Widziałem to gdzie indziej bez odpowiedzi, a animacja, którą robię, nie przeszkadza. Po prostu zaczynam ten zanik w animacji, gdy kończy się drugi. Próbowałem bezkarnie Aanimacji. Nadal dostaję migotanie –

Odpowiedz

1

Myślę, że problem jest z tej linii kodu:

android:fillBefore="true" 

Tu, spróbuj tego kodu, zamiast, to działa na mnie:

<?xml version="1.0" encoding="UTF-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="2000" 
    android:fillAfter="true" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" /> 
+0

Miałem ten sam problem. W moim przypadku 'introAnimation.setFillBefore (true);' rozwiązało problem –