Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android动画问题_Android - Fatal编程技术网

android动画问题

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

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

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

例:

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

只是在黑暗中拍摄-您设置了开始时间吗?-链接不太正常,请搜索“设置开始时间”。另外,“作为startAnimation()的替代方法,您可以使用animation.setStartTime()定义动画的开始时间,然后使用View.setAnimation()将动画指定给视图。”-