/**
* 自定义动画工具类
* 工具类不一定非要是静态的方法,静态虽然不用new,但是会有太多的限制。
* @author LENOVO
*
*/
public
class
MyAnimUtils {
public
int
runningAnimations =
0
;
MyAnimationListener listener =
new
MyAnimationListener();
public
boolean
isRunningAnimation()
{
return
runningAnimations !=
0
;
}
public
boolean
startHideAnimation(Context context, View view) {
return
startHideAnimation(context, view,
0
);
}
public
boolean
startHideAnimation(Context context, View view,
int
startOffset) {
RelativeLayout rl = (RelativeLayout) view;
int
childCount = rl.getChildCount();
for
(
int
i =
0
; i < childCount; i++) {
rl.getChildAt(i).setEnabled(
false
);
}
Animation hideAnimation = AnimationUtils.loadAnimation(context,
R.anim.zero_to_fu180);
hideAnimation.setStartOffset(startOffset);
view.startAnimation(hideAnimation);
hideAnimation.setAnimationListener(listener);
return
false
;
}
public
boolean
startShowAnimation(Context context, View view) {
return
startShowAnimation(context, view,
0
);
}
public
boolean
startShowAnimation(Context context, View view,
int
startOffset) {
RelativeLayout rl = (RelativeLayout) view;
int
childCount = rl.getChildCount();
for
(
int
i =
0
; i < childCount; i++) {
rl.getChildAt(i).setEnabled(
true
);
}
Animation showAnimation = AnimationUtils.loadAnimation(context,
R.anim.fu180_to_zero);
showAnimation.setStartOffset(startOffset);
view.startAnimation(showAnimation);
showAnimation.setAnimationListener(listener);
return
true
;
}
private
class
MyAnimationListener
implements
AnimationListener
{
@Override
public
void
onAnimationStart(Animation animation) {
runningAnimations++;
}
@Override
public
void
onAnimationRepeat(Animation animation) {
}
@Override
public
void
onAnimationEnd(Animation animation) {
runningAnimations--;
}
}
}