package com.xdroid.animation.anim; import com.xdroid.animation.base.AnimationBase; import com.xdroid.animation.interfaces.Duration; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; /** * Alpha animation * * @author Robin * @since2015-07-31 10:25:38 * */ public class AlphaAnimation extends AnimationBase<AlphaAnimation>{ /** The gradient change of attribute values */ protected float[] values; /* * ================================================================== * Constructor * ================================================================== */ public AlphaAnimation(View targetView) { this.targetView = targetView; interpolator = new AccelerateDecelerateInterpolator(); duration = Duration.DURATION_LONG; listener = null; values = new float[]{ 1.0f }; } /* * ================================================================== * Override CombinableMethod * ================================================================== */ @Override public void animate() { createAnimatorSet().start(); } @Override public AnimatorSet createAnimatorSet() { targetView.setAlpha(0f); targetView.setVisibility(View.VISIBLE); AnimatorSet fadeSet = new AnimatorSet(); fadeSet.play(ObjectAnimator.ofFloat(targetView, View.ALPHA, values)); fadeSet.setInterpolator(interpolator); fadeSet.setDuration(duration); if (listener != null) { fadeSet.addListener(listener); } return fadeSet; } /* * ================================================================== * Getter And Setter * ================================================================== */ public AlphaAnimation setValues(float[] values) { this.values = values; return this; } }