package android.transition;
-import com.android.internal.R;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.ViewGroup;
+import com.android.internal.R;
+
/**
* This transition tracks changes to the visibility of target views in the
* start and end scenes and fades views in or out when they become visible
Log.d(LOG_TAG, "Fade.onAppear: startView, startVis, endView, endVis = " +
startView + ", " + view);
}
- float startAlpha = 0;
- if (startValues != null) {
- startAlpha = (Float) startValues.values.get(PROPNAME_TRANSITION_ALPHA);
- if (startAlpha == 1) {
- startAlpha = 0;
- }
+ float startAlpha = getStartAlpha(startValues, 0);
+ if (startAlpha == 1) {
+ startAlpha = 0;
}
return createAnimation(view, startAlpha, 1);
}
@Override
public Animator onDisappear(ViewGroup sceneRoot, final View view, TransitionValues startValues,
TransitionValues endValues) {
- float startAlpha = 1;
+ float startAlpha = getStartAlpha(startValues, 1);
+ return createAnimation(view, startAlpha, 0);
+ }
+
+ private static float getStartAlpha(TransitionValues startValues, float fallbackValue) {
+ float startAlpha = fallbackValue;
if (startValues != null) {
- startAlpha = (Float) startValues.values.get(PROPNAME_TRANSITION_ALPHA);
+ Float startAlphaFloat = (Float) startValues.values.get(PROPNAME_TRANSITION_ALPHA);
+ if (startAlphaFloat != null) {
+ startAlpha = startAlphaFloat;
+ }
}
- return createAnimation(view, startAlpha, 0);
+ return startAlpha;
}
private static class FadeAnimatorListener extends AnimatorListenerAdapter {