java - 循环不工作,为什么会这样?

标签 java android

我无法理解这段 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/

相关文章:

java - Arraylist<Object []> 到 Object[][]

android - 关于特定设备上的电话管理器空检查期间的错误

android - 无法从 Android 中的 mongodb 服务器获取文档列表

android - 在Gradle上运送多个APK

java - 如何让我的 bytebuf 发送我的整个消息 Netty

java - 系统计时的最佳度量单位是什么

java - 在部署时连续运行类

java - 将数据从一个 jsp 传递到另一个 jsp 并显示该 jsp View

android - 如何从listView中删除项目?

java - Android 应用程序自动进入前台