我想创建一个这样的效果: 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中。
答案 0 :(得分:0)
首先,我认为你将View设置为不正确的值。
将其更改为
button_1.animate()
.translationX((float)relativeLayout_2_x)
.translationY((float)relativeLayout_2_y);