package com.dl7.player.utils;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
/**
* Created by long on 2016/11/4.
*/
public final class AnimHelper {
private AnimHelper() {
throw new AssertionError();
}
/**
* 执行从右滑入动画
* @param view
* @param startX
* @param endX
* @param duration
*/
public static void doSlideRightIn(View view, int startX, int endX, int duration) {
ObjectAnimator translationX = ObjectAnimator.ofFloat(view, "translationX", startX, endX);
ObjectAnimator alpha = ObjectAnimator.ofFloat(view, "alpha", 0, 1);
AnimatorSet set = new AnimatorSet();
set.setDuration(duration);
set.playTogether(translationX, alpha);
set.start();
}
/**
* 裁剪视图宽度
* @param view
* @param srcWidth
* @param endWidth
* @param duration
*/
public static void doClipViewWidth(final View view, int srcWidth, int endWidth, int duration) {
ValueAnimator valueAnimator = ValueAnimator.ofInt(srcWidth, endWidth).setDuration(duration);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int width = (int) valueAnimator.getAnimatedValue();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.width = width;
view.setLayoutParams(layoutParams);
}
});
valueAnimator.setInterpolator(new AccelerateInterpolator());
valueAnimator.start();
}
/**
* 裁剪视图宽度
* @param view
* @param srcHeight
* @param endHeight
* @param duration
*/
public static void doClipViewHeight(final View view, int srcHeight, int endHeight, int duration) {
ValueAnimator valueAnimator = ValueAnimator.ofInt(srcHeight, endHeight).setDuration(duration);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int width = (int) valueAnimator.getAnimatedValue();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = width;
view.setLayoutParams(layoutParams);
}
});
valueAnimator.setInterpolator(new AccelerateInterpolator());
valueAnimator.start();
}
}