package ren.solid.library.behavior.byeburgernavigationview; import android.view.View; import android.view.animation.TranslateAnimation; /** * A Animate Helper to control view's visibility * Created by wing on 11/5/16. */ public class TranslateAnimateHelper implements AnimateHelper{ public View mTarget; public float mStartY; public int mCurrentState = STATE_SHOW; public int mMode = MODE_TITLE; public static int MODE_TITLE = 233; public static int MODE_BOTTOM = 2333; private TranslateAnimateHelper(View view) { mTarget = view; } public static TranslateAnimateHelper get(View target) { return new TranslateAnimateHelper(target); } public void show() { if (mMode == MODE_TITLE) { showTitle(); } else if (mMode == MODE_BOTTOM) { showBottom(); } } private void hideTitle() { mTarget.setY(-mTarget.getMeasuredHeight()); TranslateAnimation ta = new TranslateAnimation(0f, 0f,mTarget.getMeasuredHeight(),0f); ta.setDuration(300); mTarget.startAnimation(ta); mCurrentState = STATE_HIDE; } private void showTitle() { mTarget.setY(mStartY); TranslateAnimation ta = new TranslateAnimation(0f, 0f,-mTarget.getMeasuredHeight(),0); ta.setDuration(300); mTarget.startAnimation(ta); mCurrentState = STATE_SHOW; } public void hide() { if (mMode == MODE_TITLE) { hideTitle(); } else if (mMode == MODE_BOTTOM) { hideBottom(); } } private void showBottom() { mTarget.setY(mStartY); TranslateAnimation ta = new TranslateAnimation(0f, 0f,mTarget.getMeasuredHeight(),0); ta.setDuration(300); mTarget.startAnimation(ta); mCurrentState = STATE_SHOW; } private void hideBottom() { mTarget.setY(mStartY+mTarget.getMeasuredHeight()); TranslateAnimation ta = new TranslateAnimation(0f, 0f,-mTarget.getMeasuredHeight(),0); mTarget.startAnimation(ta); ta.setDuration(300); mCurrentState = STATE_HIDE; } public void setStartY(float y) { mStartY = y; } public int getState() { return mCurrentState; } public void setMode(int mode) { mMode = mode; } private void setState(int state){ mCurrentState = state; } }