2014-10-20 189 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