我想知道是否有人可以帮助我,我一直在寻找有用的帮助,但什么也没找到。我有四个View
元素(Button
s),我需要按照随机顺序对它们进行一个接一个的动画处理。我试过等待Animation.hasEnded()
,这只会冻结整个应用程序。此外,我试图等待AnimationListener
从onAnimationEnd()
更改布尔值,但也冻结了应用程序。 Thread.sleep()
和SystemClock.sleep()
等待都给出了相同的结果。请,有人可以帮我吗?等待Android动画完成
1
A
回答
2
以下是我会做:
首先,创建一个成员的随机按钮配置:
private Button[] mRandomButtonsOrder;
然后,初始化随机按钮顺序:
List<Button> myButtons = new ArrayList<Button>();
myButtons.add(btn1); // Add all your buttons to this array.
myButtons.add(btn2);
myButtons.add(btn3);
myButtons.add(btn4);
mRandomButtonsOrder = new Button[myButtons.size()]; // This is a member of the activity!
Random random = new Random();
int index;
for (int i = 0; i < myButtons.size(); i++)
{
do
{
index = random.nextInt() % mRandomButtonsOrder.length;
} while (mRandomButtonsOrder[index] != null);
mRandomButtonsOrder[index] = myButtons.get(0);
myButtons.remove(0);
}
initiateAnimationOnButton(0);
现在,这里是initateAnimationOnButton方法:
private void initiateAnimationOnButton(final int buttonIndex)
{
TranslateAnimation animation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); // Just a sample using TranslateAnimation
animation.setDuration(1000);
if (buttonIndex < mRandomButtonsOrder.length - 1)
{
animation.setAnimationListener(new TranslateAnimation.AnimationListener()
{
@Override
public void onAnimationStart(Animation animation) { }
@Override
public void onAnimationRepeat(Animation animation) { }
@Override
public void onAnimationEnd(Animation animation)
{
initiateAnimationOnButton(buttonIndex + 1);
}
});
}
Button btn = mRandomButtonsOrder[buttonIndex];
btn.startAnimation(animation);
}
希望这有助于:)
+0
完全解决了,谢谢! – drRoflol
+0
很高兴我能帮忙:) –
相关问题
- 1. Android等待动画完成
- 2. android sdk等待动画完成
- 3. 等待动画完成
- 4. Android动画:等到完成?
- 5. 如何等待动画 - 完成块
- 6. jQuery/Javascript:等待动画完成
- 7. 如何等待UITableView动画完成?
- 8. UIView animateWithDuration等待,直到动画完成
- 9. 等待多个动画完成
- 10. 等待动画在unity3d中完成
- 11. 如何等待动画师完成?
- 12. 等待动画在iOS中完成?
- 13. Android Espresso:等待活动完成/启动
- 14. Android的等待动画活动之前完成结束
- 15. 等待,而Asynctask完成android
- 16. JavaScript的等待动画完成一个动画
- 17. 播放并等待动画/动画师完成播放
- 18. cocos2d iphone等待动作完成/完成
- 19. 活动完成方法等待完成?
- 20. 等待完成
- 21. 等待完成
- 22. UIViewController动画等到动画完成
- 23. QML:等到动画完成
- 24. Unity - 等到动画完成
- 25. 等到popToRootViewControllerAnimated:YES动画完成
- 26. 等到DrawerLayout动画完成
- 27. UIPickerView等待didSelect,直到滚动动画完成
- 28. iPhone:在推动viewcontroller之前等待selectrow动画完成?
- 29. 动画完成 - Android?
- 30. 等待webworker完成
你可以给我们更多关于如何等待动画的方式的代码吗?我不认为你需要在onAnimationEnd()中调用thread.sleep()或systemclock.sleep。 –