拖动/移动按钮后,将按钮移回原点

时间:2016-06-14 00:44:36

标签: android android-layout android-button

我有一个我需要与屏幕底部对齐的ImageButton,当我点击并拖动它时,它会用我的手指移动一定距离,超过该距离它将不再从原点移动但继续跟随方向我的手指来自原点。

当我放开时,按钮必须滑回原点。

到目前为止我设法做的是通过这个答案按下我的手指:Moving buttons via Touch

但是,我应该如何在初始化时获得按钮的来源,以便在我发布后反弹?

最初我通过设置一个android:layout_gravity =“center | bottom”来实现按钮的对齐,将它放在底部,但它以某种方式混淆了按钮相对于我的手指的位置(它跟随我的手指动作但它偏离了中心。

因此,我使用mButton.setY()和mButton.setX()将它放在屏幕的底部,但是使用屏幕尺寸来放置它似乎很苛刻。想不出更好的方法。

1 个答案:

答案 0 :(得分:1)

您可以使用XML设置布局的宽度和高度 layout_widthlayout_height

然后在你的MainActivity中,实例化布局(我将使用LinearLayout作为示例)并获取其宽度和高度。

LinearLayout l = (LinearLayout)findviewbyid(R.id.l1);
int height = l.getHeight();
int width = l.getWidth();

现在,无论何时释放按钮,您都可以通过以下方式设置其位置:

mButton.setY(height - 50)

这会将ImageButton定位在布局底部50像素上方。您也可以按照相同的方式设置按钮的x位置。此外,您应该将height - 50存储为可以从代码中的任何位置调用的全局变量(origin)。