2017-06-27 112 views
0

我的音乐应用程序的工作如何改变按钮的背景为每次点击

,所以我试图做一个按钮,当我点击歌曲

被重复和背景变化

我有两个背景的其中一个我希望把它的按钮

一次播放歌曲时

的背景和另一个当歌是REPE阿婷

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; 

     } 
    } 


} 

回答

0

你可以从你的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 
      } 
     } 
    }); 

注意setLooping您的媒体播放器只是设定重复模式,所以如果你的X(媒体播放器)是不是在玩,你还可以设置x.start()重复状态或x.resume()根据您的玩家状态。

+0

谢谢,它的工作原理。 – khaled

0

你可能会发现你的答案在这个帖子:How set background drawable programmatically in Android

正如你所处理的按钮,看看这个这个有趣的链接:https://developer.android.com/reference/android/widget/Button.html

为了当检测到背景的变化。我建议你实现一个扩展MediaPlayer并使用它的类。为了观察背景的变化,您应该在您的活动中实施公共界面。

+0

但是如何让背景变化时重复歌曲? – khaled