android - 拖动/移动后将按钮移回原点

标签 android android-layout android-button

我有一个需要与屏幕底部对齐的 ImageButton,当我单击并拖动它时,它会随着我的手指移动一定距离,超过该距离它不会远离原点,而是继续跟随我的手指从原点开始的方向。

当我松手时,按钮必须滑回原点。

我到目前为止所做的是通过这个答案让按钮跟随我的手指:Moving buttons via Touch

但是,我应该如何在初始化时获取按钮的原点,以便它在我释放后弹回?


最初我通过将 android:layout_gravity="center|bottom"放置在底部来实现按钮的对齐,但它以某种方式扰乱了按钮相对于我手指的位置(它跟随我的手指移动但它偏离了中心)。

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

最佳答案

您可以使用 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),您可以在代码中的任何位置调用它。

关于android - 拖动/移动后将按钮移回原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801274/

相关文章:

android - Robotium:Android 模拟器上的 Wifi 网络测试

Android 4.0+ 平板关键字?

android - 我怎样才能崩溃/杀死正在运行的应用程序

android - Metro 布局对齐底部

android - 如何检查Cursor的空值?

android - 通过 Google Play 购买的每设备订阅

android - 加载的位图不缩放到容器大小

android - Android 中的按钮动画

安卓 : startActivityForResult and OnActivityResult in getView() method

android - 如何去除线性布局中两个按钮之间的空白?