package com.linfaxin.transitionplayer.transitions; import android.animation.Animator; import android.animation.ObjectAnimator; import android.transitions.everywhere.Transition; import android.transitions.everywhere.TransitionValues; import android.view.View; import android.view.ViewGroup; /** * Created by linfaxin on 2015/5/29. * Email: linlinfaxin@163.com */ public class ChangeAlpha extends Transition { private static final String PROPNAME_ALPHA = "android:alpha:alpha"; @Override public void captureStartValues(TransitionValues transitionValues) { transitionValues.values.put(PROPNAME_ALPHA, transitionValues.view.getAlpha()); } @Override public void captureEndValues(TransitionValues transitionValues) { transitionValues.values.put(PROPNAME_ALPHA, transitionValues.view.getAlpha()); } @Override public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { if (startValues == null || endValues == null) { return null; } final View view = endValues.view; float startAlpha = (Float) startValues.values.get(PROPNAME_ALPHA); float endAlpha = (Float) endValues.values.get(PROPNAME_ALPHA); if (startAlpha != endAlpha) { view.setAlpha(startAlpha); return ObjectAnimator.ofFloat(view, "alpha", startAlpha, endAlpha); } return null; } }