package com.hupu.games.dialog; import android.R.integer; import android.app.Activity; import android.view.View; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import com.hupu.games.R; /** * @author wangjianjun * Nov 14, 2014 3:33:57 PM * * TODO */ public class EpandDownAnimation { private Activity mContext; private EpandAnimationCallBack callBack; public static final int ACTION_SHOW = 1; public static final int ACTION_FINISH = 2; public boolean isShowingStart; public boolean isShowingEnd; public EpandDownAnimation(Activity mContext,EpandAnimationCallBack callBack) { this.mContext = mContext; this.callBack = callBack; } /** * TODO 开始动画 * * * @param view 要展示动画的View * @return void */ public void startAction_TopToBottom(final View view,View lay_view) { // TODO Auto-generated method stub if(mContext==null||view==null||isShowingStart) { return; } view.setVisibility(View.VISIBLE); lay_view.setVisibility(View.VISIBLE); // Animation showAnim=AnimationUtils.loadAnimation(mContext, R.anim.fade_in_top); TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, -690, 0); translateAnimation.setDuration(400); view.startAnimation(translateAnimation); translateAnimation.setAnimationListener(new AnimationListener(){ @Override public void onAnimationEnd(Animation animation) { view.clearAnimation(); if(callBack!=null) { callBack.callBack(ACTION_SHOW); } } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub isShowingStart = true; }}); } /** * TODO 结束动画 * * * @param view * @return void */ public void finishAction(final View view,final View lay_view) { if(mContext==null||view==null||isShowingEnd) { return; } Animation hiddenAnim=AnimationUtils.loadAnimation(mContext, R.anim.fade_out_top); view.startAnimation(hiddenAnim); hiddenAnim.setAnimationListener(new AnimationListener(){ @Override public void onAnimationEnd(Animation animation) { isShowingEnd = false; isShowingStart = false; view.clearAnimation(); view.setVisibility(View.GONE); lay_view.setVisibility(View.GONE); if(callBack!=null) { callBack.callBack(ACTION_FINISH); } } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub isShowingEnd = true; }}); } public interface EpandAnimationCallBack{ /** * TODO * * * @return void 动画结束的回调 */ public void callBack(int type); } }