实现方法:
private void showShakeAnimation(final View view, final int y){ if(y>=0){ return; } TranslateAnimation anim = new TranslateAnimation(0, 0, 0, y); anim.setInterpolator(new CycleInterpolator(1f)); anim.setDuration(200); anim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { showShakeAnimation(view, y + 3);//循环跳动 } @Override public void onAnimationRepeat(Animation animation) { } }); view.startAnimation(anim); }
调用方法:showShakeAnimation(view, -9);
这里传入的y=-9;实现3次跳动后停止,缺点是没有考虑重力加速度的问题,不过目前效果已够用。