2014-10-20 147 views
0

我的时候按下它改变你的背景,这里是变化中的XML按钮的代码图像按钮:图像按钮设置背景的onclick

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/pushed" 
     android:state_pressed="true"/> 
    <item android:drawable="@drawable/normal"/> 
</selector> 

此按钮播放,当你按下它的声音,问题如果我继续单击(长按)正确更改其背景的按钮,并继续显示此状态的背景,但在发布之前不会播放声音。下面的代码:

 @Override 
     public void onClick(View view) { 
      mp = MediaPlayer.create(MyActivity.this,R.raw.sound); 
      mp.start(); 

我想,当我触摸它来播放声音,而不是当我公布这 在此先感谢!

+1

的点击不处理,直到你抬起手指离开它,因为你已经注意到了。尝试使用'OnTouchListener'来代替。另外javascript对Java来说就像汽车对于猴子 – codeMagic 2014-10-20 13:46:09

回答

2

使用此代码来完成你的任务

imageButton.setOnTouchListener(new OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN){ 

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

       return true; 
      } 

      else if(event.getAction() == MotionEvent.ACTION_UP){ 
        mp.stop(); 
        mp.release(); 
      return true; 
     } 

      return false; 
     } 
    }); 
+0

我不认为他的意思是在触摸结束时停止媒体播放器,但触摸部分是正确的。 – 2014-10-20 15:08:16

+0

谢谢非常非常! :d – tango3d 2014-10-20 15:10:50