我有一个十六进制颜色列表,每个颜色的持续时间以毫秒为单位.我希望在每个颜色的持续时间内填充屏幕,然后转到下一个颜色.
我试图迭代颜色来执行以下操作:
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();
把它放在一个方法中并调用它.