如何在android(Eclipse)中正确设置延迟

如何在android(Eclipse)中正确设置延迟,android,Android,我在eclipse和制作应用程序方面是新手,我想用3张图片创建一个无限循环,每一张图片都会在这个循环中变为可见或不可见。 但当我运行应用程序时,只有第二张图片显示一次,就是这样,然后停止,什么也不发生。 我需要做什么才能让它工作 受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity_main; dk1=ImageView find

我在eclipse和制作应用程序方面是新手,我想用3张图片创建一个无限循环,每一张图片都会在这个循环中变为可见或不可见。 但当我运行应用程序时,只有第二张图片显示一次,就是这样,然后停止,什么也不发生。 我需要做什么才能让它工作

受保护的void onCreateBundle savedInstanceState{ super.onCreatesavedInstanceState; setContentViewR.layout.activity_main; dk1=ImageView findViewByIdR.id.dkmain1; dk2=ImageView findViewByIdR.id.dkmain2; dk3=ImageView findViewByIdR.id.dkmain3; dk1.setVisibilityView.VISIBLE; dk2.setVisibilityView.INVISIBLE; dk3.设置可见性视图。不可见; ifdk1.getVisibility==View.VISIBLE { new Handler.postDelayednew Runnable{ @凌驾 公共无效运行{ dk1.setVisibilityView.INVISIBLE; dk2.setVisibilityView.VISIBLE; dk3.设置可见性视图。不可见; } }, 2000; } ifdk2.getVisibility==View.VISIBLE { new Handler.postDelayednew Runnable{ @凌驾 公共无效运行{ dk1.setVisibilityView.INVISIBLE; dk2.setVisibilityView.INVISIBLE; dk3.setVisibilityView.VISIBLE; } }, 2000; } ifd3.getVisibility==View.VISIBLE { new Handler.postDelayednew Runnable{ @凌驾 公共无效运行{ dk1.setVisibilityView.VISIBLE; dk2.setVisibilityView.INVISIBLE; dk3.setVisibilityView.INVISIBLE; } }, 3000; } 您需要嵌套处理程序,以确保它们逐个运行:

    if(dk1.getVisibility()==View.VISIBLE)
                {           
                     new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {                 
                            dk1.setVisibility(View.INVISIBLE);
                            dk2.setVisibility(View.VISIBLE);
                            dk3.setVisibility(View.INVISIBLE);
                            //put your 2nd if here, and 3rd if INSIDE your 2nd if
                            if(dk2.getVisibility()==View.VISIBLE) 
                            //rest of the 2nd if code, and out the 3rd if here
                             }
                         }, 2000);

如果将视图设置为不可见:

dk2.setVisibility(View.INVISIBLE);
然后检查它是否可见:

if(dk2.getVisibility()==View.VISIBLE)
它将始终计算为false,并且永远不会执行

我会考虑一种不同的方法,如:

计时器- 倒计时 此外,还可以使用以下命令设置布局中的默认可见性:

android:visibility="visible|invisible|gone"

当我像你一样运行它时,图片只会切换一次。我如何无限切换?它会一直运行到第三张图片吗?如果是,那么我认为你只需要添加whiletrue并将整个代码放入其中。请参阅我编辑的答案。顺便说一句,我认为你的主要问题:如何正确设置延迟已经得到了回答:现在当我将代码放入当nothing运行时,我得到的只是一个包含图片的空白页面。谢谢你的帮助answers@Ofeknourian很抱歉,除了whiletrue之外,我无能为力。您可能需要创建一个新问题,例如只要活动处于活动状态,如何运行处理程序?