package com.duguang.baseanimation.utils;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.RotateAnimation;
public class Utils {
// private static boolean isInRunning = false;
// private static boolean isOutRunning = false;
private static boolean isRunning = false;
/**
* 开始进场动画
*/
public static void startInRotateAnimation(ViewGroup viewGroup, long startOffset) {
for (int i = 0; i < viewGroup.getChildCount(); i++) {
viewGroup.getChildAt(i).setEnabled(true); // 设置VieGroup所有的孩子状态Endbled为True
}
RotateAnimation anim = new RotateAnimation(
-180f, 0f,
Animation.RELATIVE_TO_SELF, 0.5f, // x轴上的值
Animation.RELATIVE_TO_SELF, 1.0f); // y轴上的值
anim.setDuration(500); // 一次动画的事件
anim.setStartOffset(startOffset);
anim.setFillAfter(true); // 动画停止在最后状态
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
isRunning = true;
}
@Override
public void onAnimationEnd(Animation animation) {
isRunning = false;
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}});
viewGroup.startAnimation(anim);
}
/**
* 开始出场动画
* @param viewGroup
* @param startOffset
*/
public static void startOutRotateAnimation(ViewGroup viewGroup, long startOffset) {
for (int i = 0; i < viewGroup.getChildCount(); i++) {
viewGroup.getChildAt(i).setEnabled(false);
}
RotateAnimation anim = new RotateAnimation(
0f, -180f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 1.0f);
anim.setDuration(500);
anim.setStartOffset(startOffset);
anim.setFillAfter(true);
anim.setAnimationListener(new AnimationListener() {
/**
* 当动画开始时
*/
@Override
public void onAnimationStart(Animation animation) {
isRunning = true;
}
/**
* 当动画结束时
*/
@Override
public void onAnimationEnd(Animation animation) {
isRunning = false;
}
/**
* 当动画开始之前
*/
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}});
viewGroup.startAnimation(anim);
}
/**
* 获取动画是否正在执行
* @return
*/
public static boolean isRunningAnimation() {
// return isInRunning || isOutRunning;
return isRunning;
}
}