从ImageView替换图像

时间:2017-09-13 10:50:52

标签: java android imageview

我是Android的新手,并试图开发游戏。经过一段时间的延迟后,我试图在递归函数调用中替换ImageView中的图像。我面临的问题是,如果一个图像设置为ImageView,它就不会改变,但每次都会调用该函数。

我同时使用了setImageResource()setImageDrawable(),但仍未达到预期效果 有人能帮助我吗?

我用来做这个的功能是:

typelaneNumber从调用函数play()

传递
int images[] = {R.drawable.blue, R.drawable.bluesq, R.drawable.red, R.drawable.redsq};
void play()
{
   type = random.nextInt(2);
   laneNumber = random.nextInt(4);
   createBlock(type,laneNumber);
   if(--count>0)
   {
     play();
   }
}

void createBlock(int type, int laneNumber) {
   switch (laneNumber) 
   {            
     case 0:
       selector = 0;
       objectLane1.setImageResource(images[type+selector]);
       animateDown(objectLane1);
       break;
     case 1:
       selector = 0;
       objectLane1.setImageResource(images[type+selector]);
       animateDown(objectLane1);
       break;
     case 2:
       selector =2;
       objectLane1.setImageResource(images[type+selector]);
       animateDown(objectLane1);
       break;
     case 3:
       selector = 2;
       objectLane1.setImageResource(images[type+selector]);
       animateDown(objectLane1);
       break;
   }
}

1 个答案:

答案 0 :(得分:0)

由于递归调用之间没有等待时间,因此无法查看ImageView更改,即使它确实发生了。

解决方案:

使用AnimationListener等待动画完成。这样,下一个递归将不会在动画结束前执行。