动画-使用椭圆曲线移动按钮(或任何视图)

时间:2018-10-01 13:19:26

标签: android animation button

我的目标是从右向左移动按钮之类的小部件。但它不应直线移动。它应遵循椭圆路径。

我的想法是根据给定的x坐标计算一条漂亮的椭圆曲线路径。 在这里可以看到我使用的公式:https://www.wolframalpha.com/input/?i=y%3D(pi+ * + x%5E2)+%2F-2 +%2B + 5。我稍微改变了偏移值。 我将其实现为:

Point computeY(int x){

        int y;

        y=(int)(Math.PI * x * x) /-2 + 5;

        Point result = new Point(x, y);

        return result;
}

x值全部存储在一个数组中

int[] array = {1088,878,544,165,0};

因此,以下循环获取每个x值,并将其传递给上面的函数,该函数计算y值并返回整个Point对象。该对象被添加到ArrayList:

 List<Point> list = new ArrayList<Point>();

 for(int i=0; i<array.length; i++){
     int xVal = array[i];

     Point coordinate = computeY(xVal);
     list.add(coordinate);
 }

接下来,ObjectAnimator到位并完成其余部分:

Path pathTest = new Path();

pathTest.moveTo(list.get(0).x, list.get(0).y);

for (int i = 1; i < list.size(); i++) {
    pathTest.lineTo(list.get(i).x, list.get(i).y);
}


ObjectAnimator animator = ObjectAnimator.ofFloat(tvLabel, View.X, View.Y, pathTest);
animator.setDuration(5000);
animator.start();

enter image description here

如您所见,该按钮消失(采用完全不同的路径),并显示在左上角。 我想要的是从中心的右边缘开始动画,然后步行到显示器的左边缘。

我想要的草图: enter image description here

有更好的方法吗?

预先感谢

0 个答案:

没有答案