用于视图的animate()无法正常工作

时间:2016-03-03 20:39:10

标签: java android animation

我想创建一个这样的效果: Image

左下方的圆圈将移动到右上角的圆圈。

我试图通过以下方式实现它:

1 - 通过以下方式获取右上角的坐标: (我试过这两个) 第一种方法:

relativeLayout_1_x = (int)relativeLayout_1_2.getX() ;
    relativeLayout_1_y = (int)relativeLayout_1_2.getY();
    relativeLayout_2_x = (int)relativeLayout_2_2.getX();
    relativeLayout_2_y = (int)relativeLayout_2_2.getY();

第二种方法:

    int[] _pos_a = new int[2];
    int[] _pos_b = new int[2];

    relativeLayout_1_2.getLocationInWindow(_pos_a);
    relativeLayout_2_2.getLocationInWindow(_pos_b);

    relativeLayout_1_x = _pos_a[0];
    relativeLayout_1_y =  _pos_a[1];

    relativeLayout_2_x =  _pos_b[0];
    relativeLayout_2_y =  _pos_b[1];

2 - 通过以下方式动画relativeLayout移动到位置:

button_1.animate()
        .translationX((float)relativeLayout_1_x)
        .translationY((float)relativeLayout_1_y);

但不是移动到位置,视图下降: Image

我尝试使用" .x"而不是使用" translationX。但无济于事。

我不知道我的错误是什么。所有四个圆都在RelativeLayout中,它位于LinearLayout中。

1 个答案:

答案 0 :(得分:0)

首先,我认为你将View设置为不正确的值。

将其更改为

button_1.animate()
        .translationX((float)relativeLayout_2_x)
        .translationY((float)relativeLayout_2_y);