gpt4 book ai didi

安卓动画问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:52 25 4
gpt4 key购买 nike

我想在 6 个球上播放比例(从 0 -> 1)动画,每个球的持续时间为 1000 毫秒。

并且每个动画都必须等待前一个动画 200 毫秒。

例如:

anim1.start -> 延迟 200ms -> anim2.start(当 anim1 正在播放时) -> .........

但我总是同时启动所有 6 个球的动画,我不知道为什么,可以

有人告诉我吗??

// 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() 将考虑任何时间规范。

关于安卓动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6619588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com