importandroid.content.Context;importandroid.view.ViewGroup;importandroid.view.ViewGroup.MarginLayoutParams;importandroid.view.animation.Animation;importandroid.view.animation.AnticipateInterpolator;importandroid.view.animation.OvershootInterpolator;importandroid.view.animation.RotateAnimation;importandroid.view.animation.TranslateAnimation;importandroid.widget.ImageButton;public classMyAnimations{private static int xOffset = 15;private static int yOffset = -13;public static void initOffset(Context context){//鐢卞竷灞�枃浠�
xOffset = (int) (10.667 *context.getResources().getDisplayMetrics().density);
yOffset= -(int) (8.667 *context.getResources().getDisplayMetrics().density);
}public static Animation getRotateAnimation(float fromDegrees ,float toDegrees,intdurationMillis){
RotateAnimation rotate= newRotateAnimation(fromDegrees, toDegrees,
Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotate.setDuration(durationMillis);
rotate.setFillAfter(true);returnrotate;
}public static void startAnimationsIn(ViewGroup viewgroup,intdurationMillis) {for (int i = 0; i < viewgroup.getChildCount(); i++) {
ImageButton inoutimagebutton=(ImageButton) viewgroup
.getChildAt(i);
inoutimagebutton.setVisibility(0);
MarginLayoutParams mlp=(MarginLayoutParams) inoutimagebutton.getLayoutParams();
Animation animation= new TranslateAnimation(mlp.rightMargin-xOffset,0F,yOffset +mlp.bottomMargin, 0F);
animation.setFillAfter(true);animation.setDuration(durationMillis);
animation.setStartOffset((i* 100)/ (-1 +viewgroup.getChildCount()));
animation.setInterpolator(newOvershootInterpolator(2F));
inoutimagebutton.startAnimation(animation);
}
}public static void startAnimationsOut(ViewGroup viewgroup,intdurationMillis) {for (int i = 0; i < viewgroup.getChildCount(); i++) {final ImageButton inoutimagebutton =(ImageButton) viewgroup
.getChildAt(i);
MarginLayoutParams mlp=(MarginLayoutParams) inoutimagebutton.getLayoutParams();
Animation animation= new TranslateAnimation(0F,mlp.rightMargin-xOffset, 0F,yOffset +mlp.bottomMargin);
animation.setFillAfter(true);animation.setDuration(durationMillis);
animation.setStartOffset(((viewgroup.getChildCount()-i) * 100)/ (-1 + viewgroup.getChildCount()));//椤哄簭鍊掍竴涓嬫瘮杈冭垝鏈�
animation.setInterpolator(newAnticipateInterpolator(2F));
animation.setAnimationListener(newAnimation.AnimationListener() {
@Overridepublic voidonAnimationStart(Animation arg0) {}
@Overridepublic voidonAnimationRepeat(Animation arg0) {}
@Overridepublic voidonAnimationEnd(Animation arg0) {//TODO Auto-generated method stub
inoutimagebutton.setVisibility(8);
}
});
inoutimagebutton.startAnimation(animation);
}
}
}