我无法理解这段 Java 代码。我希望图像闪烁几次,但有一些延迟。图像闪烁一次,仅此而已。谁能给我一个解释就太好了!
private void RunAnimations(int[]melodiTakten) {
for (int i = 0; i < 4; i++) {
ImageView markeringspilen = (ImageView) findViewById(R.id.markeringspil);
markeringspilen.setVisibility(View.VISIBLE);
markeringspilen.postDelayed(new Runnable() {
public void run() {
ImageView markeringspilen = (ImageView) findViewById(R.id.markeringspil);
markeringspilen.setVisibility(View.INVISIBLE);
}
}, 2000);
}
最佳答案
如果我对您的想法的理解是正确的,那么您的实现是错误的,因为它设置了同时发生的延迟操作。您可以像这样将它们隔开:
for (int i = 0; i < 4; i++) {
markeringspilen.postDelayed(new Runnable() {
public void run() {
ImageView markeringspilen = (ImageView) findViewById(R.id.markeringspil);
markeringspilen.setVisibility(View.VISIBLE);
}
}, 4000*i);
markeringspilen.postDelayed(new Runnable() {
public void run() {
ImageView markeringspilen = (ImageView) findViewById(R.id.markeringspil);
markeringspilen.setVisibility(View.INVISIBLE);
}
}, 4000*i+2000);
}
此循环设置八个延迟的可见性更改 - 一组四对设置在 4000*i
可见,然后设置在 4000*i+2000
不可见。
关于java - 循环不工作,为什么会这样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497089/