如何在Android / Java中循环显示背景颜色?

我有一个十六进制颜色列表,每个颜色的持续时间以毫秒为单位.我希望在每个颜色的持续时间内填充屏幕,然后转到下一个颜色.

我试图迭代颜色来执行以下操作:

 myView.setBackgroundColor(Color.parseColor( theColor ));
 SystemClock.sleep( theDuration );

 myView.setBackgroundColor(Color.parseColor( nextColor ));
 SystemClock.sleep( nextDuration );

 etc...

这对我来说似乎很明显,但是当它运行时它对视图没有任何作用,至少在我的AVD中.我知道这是因为Android只在预定义的时间绘制. (我也尝试过调用“Invalidate()”而没有运气.)

连续显示所有颜色的最佳方法是什么?

(我意识到我也不应该叫sleep(),所以对此的任何建议也会受到赞赏.)

谢谢.

最佳答案

new Thread() {
    @Override
    public void run() {
        YourActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            myView.setBackgroundColor(Color.parseColor( theColor ));
        }
        Thread.sleep( theDuration);

        YourActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            myView.setBackgroundColor(Color.parseColor( nextColor ));
        }
        Thread.sleep( nextDuration );
    }
}.start();

把它放在一个方法中并调用它.

点赞