package com.mgw.member.ui.widget.randomLayout;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.LinearInterpolator;
import android.view.animation.ScaleAnimation;
public class AnimationUtil {
private static final long MEDIUM = 500;
/** 创建一个淡入放大的动画 */
public static Animation createZoomInNearAnim() {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡入的动画
anim = new AlphaAnimation(0f, 1f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new LinearInterpolator());
ret.addAnimation(anim);
// 创建一个放大的动画
anim = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
/** 创建一个淡出放大的动画 */
public static Animation createZoomInAwayAnim() {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡出的动画
anim = new AlphaAnimation(1f, 0f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
// 创建一个放大的动画
anim = new ScaleAnimation(1, 3, 1, 3, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
/** 创建一个淡入缩小的动画 */
public static Animation createZoomOutNearAnim() {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡入的动画
anim = new AlphaAnimation(0f, 1f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new LinearInterpolator());
ret.addAnimation(anim);
// 创建一个缩小的动画
anim = new ScaleAnimation(3, 1, 3, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
/** 创建一个淡出缩小的动画 */
public static Animation createZoomOutAwayAnim() {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡出的动画
anim = new AlphaAnimation(1f, 0f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
// 创建一个缩小的动画
anim = new ScaleAnimation(1, 0, 1, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
/** 创建一个淡入放大的动画 */
public static Animation createPanInAnim(float degree) {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡入动画
anim = new AlphaAnimation(0f, 1f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new LinearInterpolator());
ret.addAnimation(anim);
// 创建一个放大动画
final float pivotX = (float) (1 - Math.cos(degree)) / 2;
final float pivotY = (float) (1 + Math.sin(degree)) / 2;
anim = new ScaleAnimation(0.8f, 1, 0.8f, 1, Animation.RELATIVE_TO_SELF, pivotX, Animation.RELATIVE_TO_SELF,
pivotY);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
/** 创建一个淡出缩小的动画 */
public static Animation createPanOutAnim(float degree) {
AnimationSet ret;
Animation anim;
ret = new AnimationSet(false);
// 创建一个淡出动画
anim = new AlphaAnimation(1f, 0f);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
// 创建一个缩小动画
final float pivotX = (float) (1 + Math.cos(degree)) / 2;
final float pivotY = (float) (1 - Math.sin(degree)) / 2;
anim = new ScaleAnimation(1, 0.8f, 1, 0.8f, Animation.RELATIVE_TO_SELF, pivotX, Animation.RELATIVE_TO_SELF,
pivotY);
anim.setDuration(MEDIUM);
anim.setInterpolator(new DecelerateInterpolator());
ret.addAnimation(anim);
return ret;
}
}