2011-12-29 105 views
2

我有一个我制作的Android应用程序,一切正常,但我想添加一个代码,一旦我再次触摸屏幕就会停止动画。正如你在代码中看到的那样,我得到了动画开始,但是我只能通过退出程序来停止它,我希望能够再次触摸屏幕来停止动画和声音播放。如何让动画在触摸时开始并再次触摸时停止?

谢谢。

import android.app.Activity; 
import android.os.Bundle; 
import android.graphics.drawable.AnimationDrawable; 
import android.media.MediaPlayer; 
import android.view.MotionEvent; 
import android.widget.ImageView; 



public class WigleActivity extends Activity { 
/** Called when the activity is first created. */ 

MediaPlayer mp; 
AnimationDrawable animation; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

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

    ImageView imageView1 = (ImageView)findViewById(R.id.imageView1); 
    imageView1.setBackgroundResource(R.anim.wanim); 
    animation = (AnimationDrawable) imageView1.getBackground();  
} 

protected void onPause() { 
    super.onPause(); 

    mp.release(); 
    finish(); 
} 

public boolean onTouchEvent (MotionEvent event) { 
if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    mp.start(); 
    animation.start(); 
    return true; 

} 
return super.onTouchEvent(event); 
} 

} 

回答

1

更改您onTouch代码如下:

public boolean onTouchEvent (MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    if (animation.isRunning()) { 
     mp.stop(); 
     animation.stop(); 
    } else { 
     mp.start(); 
     animation.start(); 
    } 
    return true; 

    } 
    return super.onTouchEvent(event); 
} 
+0

谢谢你这么多IDK的易建联没有看到它之前,它如此简单,我是一个新手,我知道一个小蟒蛇,但从来没有与Java搞砸,但它与我发现的非常相似。再次感谢 – Raul 2011-12-29 23:58:37

+0

@RaulSanchez你应该经常检查文档,因为在大多数情况下,它包含你想要的,它是我们找到答案的地方。你可以在这里找到它:http://developer.android.com/reference/android/view/animation/Animation.html – 2011-12-30 09:07:01