android动画:兔子跳跃和弹跳

时间:2013-11-10 10:29:23

标签: android animation bounce

我正在学习一些Android动画,并希望执行以下操作:

背景:

一只兔子最初在草地上睡觉。当按下按钮时,它会垂直向上跳一次,速度降低到半空(位置X),然后开始从位置X下降并垂直弹跳几次,最后回到原来的位置。

在飞行过程中,它会睁开眼睛(可绘制的r_rabbit_wake400), 当动画停留在草地上时,它会闭上眼睛(可绘制的r_rabbit_sleep400)。

代码:

protected void onCreate(Bundle savedInstanceState) 
{  
    ....        
    button_rabbit.setBackgroundResource(R.drawable.r_rabbit_sleep400);
    ....



public void button_action_click (View view) 
{
    button_rabbit.setBackgroundResource(R.drawable.r_rabbit_wake400);
    ObjectAnimator animY = ObjectAnimator.ofFloat(button_rabbit, "translationY", -500f, 0f);
    animY.setDuration(1500);//1.5sec
    animY.setInterpolator(new BounceInterpolator());
    animY.setRepeatCount(0);
    animY.start();  
}

问题:

这只会给出一个结果,兔子立即从草地上睁开眼睛直接到空中(没有减速的过渡),然后摔倒在地,蹦蹦跳下几次回到草地,然后没有闭上眼睛。

我应该使用AnimationListener

将动画分成两个阶段
  1. 从草地到半空,减速(到位置X)
  2. 从位置X开始反弹
  3. 如果是,那怎么可以用onAnimationEnd来写? 提前感谢您的建议!

0 个答案:

没有答案