Android布局颜色的编程更改

Android布局颜色的编程更改,android,background-color,runnable,Android,Background Color,Runnable,我有一个课程,应该是显示一个白色的屏幕,并通过许多颜色褪色 public class SecondActivity extends Activity implements Runnable { protected PowerManager.WakeLock mWakeLock; boolean isrunning = true; int red = 0, blue = 0, green = 0; @Override public void onCreate(Bundle savedInst

我有一个课程,应该是显示一个白色的屏幕,并通过许多颜色褪色

public class SecondActivity extends Activity implements Runnable {

protected PowerManager.WakeLock mWakeLock;

boolean isrunning = true;
int red = 0, blue = 0, green = 0;

@Override
public void onCreate(Bundle savedInstanceState) .... etc

TextView btnstart = (TextView) findViewById(R.id.btnstart);
    btnstart.setTypeface(font1);
    btnstart.setOnClickListener(new OnClickListener() {
@Override
        public void onClick(View v) {

            MediaPlayer mediaPlayer = MediaPlayer.create(
                    getApplicationContext(), R.raw.button);
            try {
                mediaPlayer.start();
                mediaPlayer.setLooping(false);
            } catch (Exception e) {
                e.printStackTrace();
            }

            {
                run();
            }
            ;
        }
    });
那我的车就可以跑了

@Override
public void run() {
    while (isrunning) {

        try {

            red = red + 1;
            blue = blue + 2;
            green = green + 3;
            if (green > 240){

                red = 0;
                blue = 0;
                green = 0;
            }

            LinearLayout colorchanger = (LinearLayout) findViewById(R.id.colorchange);
            colorchanger.setBackgroundColor(Color.argb(255, red, blue,
                    green));
            Thread.sleep(100);
                } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
我按下应用程序强制关闭按钮时出现以下问题。如果我取出“while(isrunning)”并将其替换为If(isrunning),则所有功能都正常,但我希望在单击按钮后颜色保持不变

我肯定我做错了什么


也许用一个布局不是最好的方法,我必须用一个矩形(屏幕大小)来做?在onDraw过程中更改颜色?

处理程序非常适合这种情况

// Initialize your handler:
Handler h = new Handler();

// Start fading:
h.postDelayed(color_fade, 0);


// Set up your runnable:     
private Runnable color_fade = new Runnable(){
   public void run(){
      /*
       *  Do your color and layout changes here.
       */
      h.postDelayed(this, 100);  // loop with 100 ms delay.
   }
};