Android 如何设置具有延迟的图像

Android 如何设置具有延迟的图像,android,timer,imageview,delay,Android,Timer,Imageview,Delay,我有一个有三张图片的“活动”。单击一个图像时,所有图像都将切换到另一个图像。是否有办法使开关在图像实际更改之前有2秒的延迟(即,下面的每个“for循环”都有2秒的延迟)?我正试图用定时器来实现这一点,但它实际上并不影响我运行程序时的延迟: protected void onCreate(Bundle savedInstanceState) { image1.setOnClickListener(this); @Override public void onClick(View arg0) {

我有一个有三张图片的“活动”。单击一个图像时,所有图像都将切换到另一个图像。是否有办法使开关在图像实际更改之前有2秒的延迟(即,下面的每个“for循环”都有2秒的延迟)?我正试图用定时器来实现这一点,但它实际上并不影响我运行程序时的延迟:

protected void onCreate(Bundle savedInstanceState) {
image1.setOnClickListener(this);

@Override
public void onClick(View arg0) 
{
do_switches();
}

private void do_switches() 
{
//loop through all images and change them
for(int j=1 ;j<=3; j++)
{           


 final int curr2=current;
 final Handler handler = new Handler(); 
 Timer t = new Timer(); 
 t.schedule(new TimerTask() { 
       public void run() { 
        handler.post(new Runnable() { 
               public void run() { 

        switch(curr2){

        case 1:

            image1.setImageResource(ImageArray[1]);
                    break;

        case 2:

            image2.setImageResource(ImageArray[2]);
                             break;

        case 3:
            image3.setImageResource(ImageArray[3]);
                        break;

        }
            } 
        }); 
    } 
 }, 2000); 
}
创建时受保护的void(Bundle savedInstanceState){
图1.setOnClickListener(此);
@凌驾
公共void onClick(视图arg0)
{
do_开关();
}
专用void do_开关()
{
//循环浏览所有图像并更改它们

对于(int j=1;j您可以使用handler.postDelayed(Runnable r,long-timeInMillis)。使您的Runnable更改图片,然后调用postDelayed()并传入Runnable和2000作为时间延迟


编辑:啊,我明白你想做什么了。据我所知,你不可能每次都让for循环暂停2秒。如果你链接postDelayed()调用,你也可以得到同样的效果。只需设置下一个runnable并调用postDelayed()在第一个循环中,在第二个循环中,在第三个循环中,在第一个循环中,在它上面,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第二个循环中,在第三个循环中,在第三个循环中


我刚刚试着按照你说的做,但是我的for循环仍然会继续到下一个迭代,即使这两秒钟还没有过去。我如何使for循环的当前迭代等待到这两秒钟过去后再继续?在我的情况下,我会多次调用相同的runnable。我该如何做?我首先停止重新排列要在阵列中更改的图像序列,然后我使用倒计时来实际更改图像。但是,当我将间隔设置为一个小数字(小于~2000毫秒)时,它会错过阵列的最后1或2个插槽。你知道是什么原因导致了这种情况吗?