我无法理解这个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);
}
答案 0 :(得分:1)
如果我理解你的想法是正确的,那么你的实施是错误的,因为它设置了所有同时发生的延迟行动。你可以像这样将它们分开:
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
处设置为不可见。
答案 1 :(得分:0)
执行循环,但执行得非常快,你看不到它。你应该在循环中加入一些延迟,而不仅仅是在runnable中。
答案 2 :(得分:0)
这是因为您连续四次拨打setVisibility(View.VISIBLE)
,然后在延迟2秒后拨打setVisibility(View.INVISIBLE)
四次。
您需要做的是添加八个可用延迟的runnable,从而切换可见性。