2017-03-08 5 views
0

私のアプリケーションでは、ボタンをクリックしてメディアプレーヤーを使用したときにサウンドを設定するようにしました。しかし、私は多くのアクティビティで多くのボタンを持っているので非常に複雑ですので、ボタンを拡張し、イベントのクリックボタンでサウンドを追加するボタンクラスを作成する必要があります。クリック時のサウンド付きカスタムボタンクラス

可能ですか?それはどうやってできますか?

+1

、これを試してみてください? 1)Androidのカスタムボタン2)イベントにメディアプレーヤー機能を追加 – Stallion

答えて

0

は、なぜあなたは検索するには、この方法を試してみてくださいカント

 import android.content.Context; 
     import android.media.MediaPlayer; 
     import android.util.AttributeSet; 
     import android.util.Log; 
     import android.view.View; 
     import android.widget.Button; 

     public class CustomButton extends Button implements View.OnClickListener { 

      Context mContext; 
      public CustomButtonTest(Context context, AttributeSet attrs, int defStyle) { 
       super(context, attrs, defStyle); 
       mContext=context; 
       init(); 
      } 

      public CustomButtonTest(Context context, AttributeSet attrs) { 
       super(context, attrs); 
       mContext=context; 
       init(); 
      } 

      public CustomButtonTest(Context context) { 
       super(context); 
       mContext=context; 
       init(); 
      } 

      private void init(){ 
       setOnClickListener(this); 
      } 

      @Override 
      public void onClick(View v) { 
       // Do something 
       Log.d("TAG","@@@@@@@@@@ onClick"); 
       MediaPlayer mediaPlayer = new MediaPlayer(); 
       mediaPlayer = mediaPlayer.create(mContext, R.raw.xoay_touch_sound); mediaPlayer.start(); 


       /* 

       OR you can try below code also 
       */ 

       /*Log.d("TAG","@@@@@@@@@@ onClick"); 
       int MAX_SOUND_POOL_STREAMS = 4; 


       SoundPool soundPool = new SoundPool(MAX_SOUND_POOL_STREAMS, 
         AudioManager.STREAM_MUSIC, 100); 
       int mySoundId = soundPool.load(mContext, 
         R.raw.xoay_touch_sound, 1); 

       AudioManager audioManager = (AudioManager) mContext.getSystemService(mContext.AUDIO_SERVICE); 
       float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
       float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
       float volume = actualVolume/maxVolume; 
       soundPool.play(mySoundId, volume, volume, 1, 0, 1f);*/ 
      } 

     } 

XML

<yourPakageName.CustomButton 
     android:id="@+id/test" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
+0

ありがとうございます!しかし、コードを追加したとき: MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer = MediaPlayer.create(context、R.raw.xoay_touch_sound); mediaPlayer.start(); onClickを実行していない –

+0

MediaPlayerクラス..MediaPlayer.create(context、R.raw.xoay_touch_sound).........オブジェクトを使用します。mediaPlayer .create(context、R.raw.xoay_touch_sound) – user2025187

+0

@あなたが書いたOnClickListenerをあなたのアクティビティに書いた場合、Listenerを削除してからコード – user2025187

関連する問題