Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 视图的animate()工作不正常_Java_Android_Animation - Fatal编程技术网

Java 视图的animate()工作不正常

Java 视图的animate()工作不正常,java,android,animation,Java,Android,Animation,我想创造一个这样的效果: 左下角的圆将移动到右上角的圆 我试图通过以下方式实施: 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(); re

我想创造一个这样的效果:

左下角的圆将移动到右上角的圆

我试图通过以下方式实施:

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];
第二种方法:

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);
但视图没有移动到该位置,而是向下移动:

我没有使用“translationX”,而是尝试使用“.x”,但没有效果


我不知道我的错误是什么。所有的四个圆都在一个线性布局中的相对线中。

首先,我认为您将视图设置为不正确的值

换成

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

首先,我假设您将视图设置为不正确的值

换成

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