我是Android的新手,并试图开发游戏。经过一段时间的延迟后,我试图在递归函数调用中替换ImageView
中的图像。我面临的问题是,如果一个图像设置为ImageView
,它就不会改变,但每次都会调用该函数。
我同时使用了setImageResource()
和setImageDrawable()
,但仍未达到预期效果
有人能帮助我吗?
我用来做这个的功能是:
type
和laneNumber
从调用函数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;
}
}
答案 0 :(得分:0)
由于递归调用之间没有等待时间,因此无法查看ImageView更改,即使它确实发生了。
解决方案:
使用AnimationListener
等待动画完成。这样,下一个递归将不会在动画结束前执行。