@@ -0,0 +1,1522 @@
+package com.kaichunlin.transition.widget;%0A%0Aimport android.view.View;%0A%0Aimport com.kaichunlin.transition.ScaledTransitionHandler;%0Aimport com.kaichunlin.transition.internal.TransitionController;%0A%0A/**%0A * Created by Kai on 2016/1/1.%0A */%0Apublic abstract class ColorTransition extends ScaledTransitionHandler %7B%0A    final int startColor;%0A    final int endColor;%0A%0A    public ColorTransition(int startColor, int endColor) %7B%0A        this.startColor = startColor;%0A        this.endColor = endColor;%0A    %7D%0A%0A    @Override%0A    protected void onUpdateScaledProgress(TransitionController controller, View target, float modifiedProgress) %7B%0A        onUpdateColor(controller, target, evaluate(modifiedProgress, startColor, endColor));%0A    %7D%0A%0A    protected abstract void onUpdateColor(TransitionController controller, View target, int color);%0A%0A    private int evaluate(float fraction, int startValue, int endValue) %7B%0A        int startA = (startValue %3E%3E%3E 24);%0A        int startR = (startValue %3E%3E 16) & 0xff;%0A        int startG = (startValue %3E%3E 8) & 0xff;%0A        int startB = startValue & 0xff;%0A%0A        int endA = (endValue %3E%3E%3E 24);%0A        int endR = (endValue %3E%3E 16) & 0xff;%0A        int endG = (endValue %3E%3E 8) & 0xff;%0A        int endB = endValue & 0xff;%0A%0A        return ((startA + (int) (fraction * (endA - startA))) %3C%3C 24) %7C%0A                ((startR + (int) (fraction * (endR - startR))) %3C%3C 16) %7C%0A                ((startG + (int) (fraction * (endG - startG))) %3C%3C 8) %7C%0A                ((startB + (int) (fraction * (endB - startB))));%0A    %7D%0A%7D%0A

Add ColorTransition