我正在尝试为我的游戏制作动画。我正在尝试制作一个在某些条件下会停止的硬币翻转动画。
到目前为止,我尝试在一种方法中多次更改图像视图,并使用thread.sleep来延迟图片之间的过渡。
使用12个不同的图像我现在正在尝试使第一个图像的alpha设置为0,第二个图像设置为1,第二个图像设置为0,第三个图像设置为1,等...
我目前正在尝试这样做的方法是将图像放在ImageViews数组中,然后按顺序调用它们。
setContentView(R.layout.coin_flip_screen);
for(int i = 0; i < 4; i++){
headsTails[i].animate().alpha(0).setDuration(100);
headsTails[i+1].animate().alpha(1).setDuration(100);
try {
Thread.sleep(100);
} catch (Exception e) {
}
}
答案 0 :(得分:0)
这应该解决它
headsTails[i].animate().alpha(0).setDuration(100).start();
答案 1 :(得分:0)
final int size = imageView.length;
final int animTime = 300;
final Handler animationHandler = new Handler();
Runnable animationRunnable = new Runnable() {
int i = 0;
@Override
public void run() {
if(i == size-1){
animationHandler.removeCallbacks(this);
return;
}
imageView[i++].animate().alpha(0f).setDuration(animTime).start();
imageView[i].animate().alpha(1f).setDuration(animTime).start();
animationHandler.postDelayed(this, animTime);
}
};
animationHandler.post(animationRunnable);
此代码将遍历数组中的所有图像视图,并在消耗完所有图像后自行停止。
与animTime
变量一起播放,直到获得完美的动画效果。理想情况下,它应该在300到500毫秒左右。
我个人不会使用imageview数组来创建此效果 它会耗尽记忆力。有许多更有效的方法 硬币翻转动画,你可以在有空的时候谷歌。