通过不同的x,y坐标移动图像

时间:2011-01-11 05:48:46

标签: android-animation

我创建了一个坐标数组。图像的中心应该穿过那些坐标。我使用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);
        }
    }

点击按钮时调用了上述功能。

1 个答案:

答案 0 :(得分:-1)

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

我认为问题在于你的循环会在每次迭代时覆盖动画,这样当你运行所有你看到的就是最后一个动画(在最后两个点之间)。

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