2015-02-07 94 views
0

动画通过按下并提起按钮来启动和停止,但动画停止在任何帧之间。我想让动画在第一张图片上精确停止,并从第一张图片开始。动画通过按下并提起按钮来启动和停止,但动画停止在任何帧之间

下面是我的代码:

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 

      ImageView rocketImage = (ImageView) findViewById(R.id.imageView1); 
      rocketImage.setBackgroundResource(R.drawable.ball_animation); 
      rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); 

      mp = MediaPlayer.create(this, R.raw.sound); 

     } 

     public boolean onTouchEvent(MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       if (rocketAnimation.isRunning()){ 
        rocketAnimation.stop(); 
       } 
       rocketAnimation.start(); 
       return false; 
      } 
      if (event.getAction() == MotionEvent.ACTION_UP) { 
       if(rocketAnimation.isRunning()){ 
        rocketAnimation.stop(); 

       } 
       } 
      return super.onTouchEvent(event); 
     } 

    } 


<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="false"> 
    <item android:drawable="@drawable/image1" android:duration="40" /> 
    <item android:drawable="@drawable/image2" android:duration="40" /> 
    <item android:drawable="@drawable/image3" android:duration="40" /> 
    <item android:drawable="@drawable/image4" android:duration="40" /> 

</animation-list> 

回答

0

MotionEvent.ACTION_UP,替换rocketAnimation.stop()rocketAnimation.setOneShot(true)

+0

不工作时,播放动画仅一次。 – 2015-02-07 11:17:21