我有一个我需要与屏幕底部对齐的ImageButton,当我点击并拖动它时,它会用我的手指移动一定距离,超过该距离它将不再从原点移动但继续跟随方向我的手指来自原点。
当我放开时,按钮必须滑回原点。
到目前为止我设法做的是通过这个答案按下我的手指:Moving buttons via Touch
但是,我应该如何在初始化时获得按钮的来源,以便在我发布后反弹?
最初我通过设置一个android:layout_gravity =“center | bottom”来实现按钮的对齐,将它放在底部,但它以某种方式混淆了按钮相对于我的手指的位置(它跟随我的手指动作但它偏离了中心。
因此,我使用mButton.setY()和mButton.setX()将它放在屏幕的底部,但是使用屏幕尺寸来放置它似乎很苛刻。想不出更好的方法。
答案 0 :(得分:1)
您可以使用XML设置布局的宽度和高度
layout_width
和layout_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
)。