从ImageView替换图像
我是新来的Android和试图开发一款游戏。我试图在延迟一段时间后用递归函数调用替换ImageView
中的图像。我面临的问题是,如果一旦图像被设置为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;
}
}
过去了,因为有递归调用之间没有等待期,也没有办法即使它发生,也请参阅ImageView更改。
解决方案:
等待动画使用AnimationListener
完成。这种方式下一个递归将不会执行动画完成之前。
是我做到了,问题解决了。 :) –
@ Jay.jk太棒了,很高兴它的工作。您可以通过接受证明有用和/或赞成的答案来帮助社区。 – Gotiasits
我已经标记了它有用,但我是*的新手,所以我的upvotes没有显示:) –
你打电话play(); – phpdroid
我认为你的递归调用只是结束了。您没有等待变更可见的时间段。尝试添加一些固定的睡眠,或者'AnimationListener'来等待动画结束。 – Gotiasits
in'onCreate()'我的活动 –