我有一个十六进制颜色列表,每种颜色的持续时间以毫秒为单位。我想在持续时间内用每种颜色填充屏幕,然后转到下一种颜色。
我尝试遍历颜色以执行以下操作:
myView.setBackgroundColor(Color.parseColor( theColor ));
SystemClock.sleep( theDuration );
myView.setBackgroundColor(Color.parseColor( nextColor ));
SystemClock.sleep( nextDuration );
etc...
这对我来说似乎很明显,但在运行时对 View 没有任何影响,至少在我的 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();
把它放在一个方法中并调用它。
关于java - 如何在 Android/Java 中循环显示背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565318/