0

我创建了一个坐标数组。图像的中心应该穿过这些坐标。我已经使用 TranslateAnimation 来实现它。但在动画期间,图像在最后两个坐标内移动。下面是我的代码:

private void CreateAnimationAndRun() {
        // move to the different coordinates one by one
        for(int k=0; k<xpoints.length; k++) {
            if(k==0) {
            x1 = xstart;
                y1 = ystart;
            } else {
            x1 = xpoints[k-1];
            y1 = ypoints[k-1];
            }
            x2 = xpoints[k];
            y2 = ypoints[k];
            TranslateAnimation translateAnimation = new TranslateAnimation(x1, x2, y1, y2);
            translateAnimation.setDuration(1000);
            translateAnimation.setAnimationListener(anim_listener);
            imv1.startAnimation(translateAnimation);
        }
    }

上述函数已在单击按钮时被调用。

4

1 回答 1

-1

我自己只有几个小时来播放 Android 动画,所以我希望这不会产生误导。

我认为问题在于您的循环在每次迭代时都会覆盖动画,因此当您运行时,您所看到的只是最后一个动画(在最后两点之间)。

相反,需要使用不同的开始时间生成动画。据我目前所了解的,最好的方法是创建一个动画集,并使用你的循环通过 setStartOffset() 使用启动时间不同的动画加载它。然后单击即可启动动画集。或者,单击可以在循环中创建它们并使用 setStartTime() 让它们在适当的点播放。

于 2011-02-07T17:33:40.327 回答