android动画问题
我想在6个球上播放缩放(从0->1)动画,每个球的持续时间为1000毫秒 每个动画都必须等待前一个200毫秒 例: anim1.start->delay 200ms->anim2.start(当anim1正在播放时)-> 但我总是在同一时间启动所有6个球的动画,我不知道为什么,可以吗 有人告诉我吗android动画问题,android,Android,我想在6个球上播放缩放(从0->1)动画,每个球的持续时间为1000毫秒 每个动画都必须等待前一个200毫秒 例: anim1.start->delay 200ms->anim2.start(当anim1正在播放时)-> 但我总是在同一时间启动所有6个球的动画,我不知道为什么,可以吗 有人告诉我吗 // show animation. public void showBallAnimation(View v) { LinearLayout ll = (LinearLay
// show animation.
public void showBallAnimation(View v) {
LinearLayout ll = (LinearLayout) findViewById(R.id.ball_container);
RelativeLayout rl;
ScaleAnimation scaleAnim1 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
scaleAnim1.setDuration(500);
scaleAnim1.setStartOffset(0);
scaleAnim1.setFillAfter(true);
rl = (RelativeLayout) ll.getChildAt(0);
rl.setVisibility(View.VISIBLE);
rl.startAnimation(scaleAnim1);
ScaleAnimation scaleAnim2 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
scaleAnim2.setDuration(500);
scaleAnim2.setStartOffset(200);
scaleAnim2.setFillAfter(true);
rl = (RelativeLayout) ll.getChildAt(1);
rl.setVisibility(View.VISIBLE);
rl.startAnimation(scaleAnim2);
ScaleAnimation scaleAnim3 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
scaleAnim3.setDuration(500);
scaleAnim3.setStartOffset(400);
scaleAnim3.setFillAfter(true);
rl = (RelativeLayout) ll.getChildAt(2);
rl.setVisibility(View.VISIBLE);
rl.startAnimation(scaleAnim3);
// Animation anim4 =
// AnimationUtils.loadAnimation(getApplicationContext(),
// R.anim.ball_scale4);
ScaleAnimation scaleAnim4 = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f);
scaleAnim4.setDuration(500);
scaleAnim4.setStartOffset(600);
scaleAnim4.setFillAfter(true);
rl = (RelativeLayout) ll.getChildAt(3);
rl.setVisibility(View.VISIBLE);
rl.startAnimation(scaleAnim4);
}
您应该将
r1.startAnimation(scaleAnimX)
更改为r1.setAnimation(scaleAnimX)
调用startAnimation()
将立即启动动画,忽略任何时间偏移或开始时间
调用
setAnimation()
将考虑任何时间规范。只是在黑暗中拍摄-您设置了开始时间吗?-链接不太正常,请搜索“设置开始时间”。另外,“作为startAnimation()的替代方法,您可以使用animation.setStartTime()定义动画的开始时间,然后使用View.setAnimation()将动画指定给视图。”-