我如何在android中为图像设置动画,使其遵循由多个坐标组成的路径?

时间:2014-04-02 12:18:01

标签: android animation path coordinates translate-animation

我发现用这个简单的代码可以实现两点之间图像的移动:

    ImageView image_to_move = (ImageView) findViewById(R.id.image_to_move); 
    TranslateAnimation animation = new TranslateAnimation(50, 100, 50, 100);
    animation.setDuration(5000);     
    image_to_move.startAnimation(animation);

图像是最初在FrameLayout内的位置(0,0)设置的ImageView,代码将其从点(50,50)移动到(100,100)。 如果我必须以绝对坐标(x,y)的形式在由几个点组成的路径上移动它,该怎么办?例如,从(50,50)移动到(75,75)然后到(100,100) 有一种方法可以将一个坐标数组传递给翻译函数,或者我只是为每几个点迭代动画?

顺便说一句,我看到如果我最初没有在(0,0)中找到图像,那么该功能会以一种奇怪的方式移动图像,就像我给出的坐标不是绝对的。我错过了什么吗? 编辑:当我将参数作为参数传递给TranslateAnimation时,最后一件事情就像" n92.getX()"其中n92是我的框架布局上的一个按钮,我想从哪个位置开始动画。 细节:只是为了更好地理解问题:我正在实现在地图上移动的点的动画,以向用户显示如何从一个点到达另一个地图。这就是为什么我必须遵循的绝对坐标(可达到的点)(你不能在地图上没有精确的路径而从一个点到达另一个点)

1 个答案:

答案 0 :(得分:0)

这样做你需要计算二次贝塞尔曲线上的位置。试试这个answer它可能适合你