2017-06-27 1 views
0

Je travaille sur l'application de la musiquecomment changer de fond du bouton sur chaque clic

donc je suis en train de faire un bouton quand je clique dessus la chanson

être répètent et le changement de fond

J'ai deux arrière-plan l'un d'eux que je veux faire fond du bouton

lors de la lecture de la chanson une fois

et l'autre quand la chanson est repe Ating

package khaledbanafa.shaylat; 
    import android.media.MediaPlayer; 
    import android.os.Build; 
    import android.support.annotation.RequiresApi; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.RelativeLayout; 
    import android.widget.SeekBar; 
    import android.widget.TextView; 
    import android.widget.ToggleButton; 
    import java.io.IOException; 
    import static android.app.PendingIntent.getActivity; 
    import static khaledbanafa.shaylat.R.drawable.play; 
    public class ha extends AppCompatActivity { 
    MediaPlayer x; 
    RelativeLayout mylayout; 
    TextView textView; 
    TextView textView2; 
    TextView textView3; 
    SeekBar seekBar; 
    boolean pressed = false; 
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_on); 
     final Button a = (Button) findViewById(R.id.button1); 
     a.setText("ارفع الراس يا حربي"); 
     final Button b = (Button) findViewById(R.id.button2); 
     b.setText("سما سما"); 
     final Button c = (Button) findViewById(R.id.button3); 
     c.setText("الحربي للحربي فدا"); 
     final Button d = (Button) findViewById(R.id.button4); 
     d.setText("العبو ياحرب دام العمر فاني"); 
     final Button e = (Button) findViewById(R.id.button5); 
     e.setText("حرب الحرايب"); 
     final Button f = (Button) findViewById(R.id.button6); 
     f.setText("حرب الحرايب لحن دحة"); 
     final Button g = (Button) findViewById(R.id.button7); 
     g.setText("حرب الدول"); 
     final Button h = (Button) findViewById(R.id.button8); 
     h.setText("حرب ماتنقص تزود"); 
     final Button i = (Button) findViewById(R.id.button9); 
     i.setText("حنا اهل الفخر"); 
     final Button j = (Button) findViewById(R.id.button10); 
     j.setText("ياحرب شوشو والعبو"); 
     Button play = (Button) findViewById(R.id.buttonplay); 
     Button pause = (Button) findViewById(R.id.buttonpause); 
     Button stop = (Button) findViewById(R.id.buttonstop); 
     final Button repeat = (Button)findViewById(R.id.repeat); 
     Button nextmedia = (Button)findViewById(R.id.nextmedia); 
     textView = (TextView)findViewById(R.id.textView); 
     textView2 = (TextView)findViewById(R.id.textView2); 
     textView3 = (TextView)findViewById(R.id.textView3); 
     seekBar = (SeekBar)findViewById(R.id.seekBar); 



     final SeekBar SEK = new SeekBar(ha.this); 
     SEK.setPadding(150,0,140,0); 
     SEK.setX(0); 
     SEK.setY(1659); 
     SEK.setProgressDrawable(getDrawable(R.drawable.red_scrubber_progress)); 
     SEK.setThumb(getDrawable(R.drawable.red_scrubber_control)); 
     mylayout = (RelativeLayout)findViewById(R.id.onrel); 
     SEK.setLayoutParams(new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); 
     play.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(x != null) 
        x.start(); 
      } 
     }); 
     stop.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(x != null) 
       x.stop(); 
       textView.setText(""); 
       mylayout.removeView(SEK); 
       mylayout.addView(SEK); 
       SEK.setProgress(0); 
       SEK.setMax(0); 

      } 
     }); 
     pause.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if(x != null) 
       x.pause(); 
      } 
     }); 

     a.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar); 
       mylayout.removeView(SEK); 
       stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.haone); 
       class mythread extends Thread { 
        public void run() { 
         while (x != null) { 
          try { 
           Thread.sleep(1000); 
          } catch (Exception e) { 
          } 
          SEK.post(new Runnable() { 
           @Override 
           public void run() { 
            SEK.setProgress(x.getCurrentPosition()); 
            int tim = (SEK.getMax()/1000); 
            int m = tim/60; 
            int s = tim % 60; 
            ///////// 
            int tim0 = (SEK.getProgress()/1000); 
            int m0 = tim0/60; 
            int s0 = tim0 % 60; 
            textView2.setText(m0 + ":" + s0); 
            textView3.setText(m + ":" + s); 
           } 
          }); 
         } 
        } 
       } 
       SEK.setMax(x.getDuration()); 
       mythread my = new mythread(); 
       textView.setText(a.getText()); 
       mylayout.addView(SEK); 
       my.start(); 
       x.start(); 

         SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       });} 
     }); 

     b.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hatwo);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(b.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 
      } 
     }); 

     c.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hathree);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(c.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 


      } 
     }); 
     d.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hafour);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(d.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
     e.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hafive);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(e.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 

     f.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hasix);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(f.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
     g.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.haseven);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(g.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
     h.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.haeight);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(h.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
     i.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.hanine);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(i.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
     j.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mylayout.removeView(seekBar);mylayout.removeView(SEK);stopPlaying(); 
       x = MediaPlayer.create(ha.this, R.raw.haten);class mythread extends Thread { 
        public void run() {while (x != null) {try {Thread.sleep(1000);} catch (Exception e) {} 
         SEK.post(new Runnable() { 
          @Override 
          public void run() { 
           SEK.setProgress(x.getCurrentPosition()); 
           int tim = (SEK.getMax()/1000); 
           int m = tim/60; 
           int s= tim %60; 
           ///////// 
           int tim0 = (SEK.getProgress()/1000); 
           int m0 = tim0/60; 
           int s0 = tim0%60; 
           textView2.setText(m0+":"+s0); 
           textView3.setText(m+":"+s);}});}}} 
       SEK.setMax(x.getDuration());mythread my = new mythread(); 
       textView.setText(j.getText()); 
       mylayout.addView(SEK); 
       my.start();x.start(); 
       SEK.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
        int progresval; 
        @Override 
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
         progresval = progress;} 
        @Override 
        public void onStartTrackingTouch(SeekBar seekBar) {} 
        @Override 
        public void onStopTrackingTouch(SeekBar seekBar) { 
         x.seekTo(progresval); 
        } 
       }); 

      } 
     }); 
    } 

    public void onDestroy(){ 
     super.onDestroy(); 
     if(x != null) 
     x.stop(); 

    } 

    private void stopPlaying() { 
     if (x != null) { 
      x.stop(); 
      x.release(); 
      x = null; 

     } 
    } 


} 

Répondre

0

vous pouvez obtenir répéter état de votre MediaPlayer

repeat.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(x != null){ 
       if (x.isLooping()) { 
        //player is in repeat mode , so turn it off and change repeat buttun background to normal 
        repeat.setBackgroundResource(R.drawable.repeat_off); 
        x.setLooping(false); 
       }else { 
        //player isn't in repeat mode , so turn it on and change repeat buttun background to repeating image 
        repeat.setBackgroundResource(R.drawable.repeat_on); 
        x.setLooping(true); 
       } 
      }else { 
       //player is null 
      } 
     } 
    }); 

Notez que setLooping mode de répétition vient de mettre votre lecteur multimédia si votre x (lecteur multimédia) ne joue pas, vous pouvez également définir x.start() ou x.resume() base sur l'état de votre lecteur.

+0

Merci, cela fonctionne. – khaled

0

Vous trouverez peut-être votre réponse dans ce post: How set background drawable programmatically in Android

Comme vous faites affaire avec le bouton, consultez ce ce lien intéressant: https://developer.android.com/reference/android/widget/Button.html

Afin de détecter les changements de fond. Je vous conseille d'implémenter une classe qui étend MediaPlayer et l'utilise. Vous devez implémenter une interface publique à l'intérieur de votre activité afin d'observer le changement d'arrière-plans.

+0

Mais comment faire répéter la chanson quand l'arrière-plan a changé? – khaled