package com.xdroid.animation.base; import com.xdroid.animation.interfaces.CombinableMethod; import com.xdroid.animation.utils.ViewHelper; import android.animation.Animator.AnimatorListener; import android.animation.TimeInterpolator; import android.view.View; /** * 动画基类 * * @author Robin * @since 2015-07-22 14:44:30 * */ public abstract class AnimationBase<T> implements CombinableMethod<T>{ /** 目标动画view */ protected View targetView; /** 插值器 */ protected TimeInterpolator interpolator; /** 动画时间 */ protected long duration; /** 动画执行回调 */ protected AnimatorListener listener; @SuppressWarnings("unchecked") @Override public T setInterpolator(TimeInterpolator interpolator) { this.interpolator = interpolator; return (T) this; } @SuppressWarnings("unchecked") @Override public T setDuration(long duration) { this.duration = duration; return (T) this; } @SuppressWarnings("unchecked") @Override public T setListener(AnimatorListener listener) { this.listener = listener; return (T) this; } @SuppressWarnings("unchecked") @Override public T setPivotX(int pivotX) { ViewHelper.setPivotX(targetView, pivotX); return (T) this; } @SuppressWarnings("unchecked") @Override public T setPivotY(int pivotY) { ViewHelper.setPivotY(targetView, pivotY); return (T) this; } @Override public long getDuration() { return duration; } }