0
Image showing intended result的Android停止拖出屏幕从View
的中心点有没有办法阻止拖过使用onTouch移动事件屏幕视图的中心点?
我可以检测点,但我需要的逻辑停止视图移动,然后重新接合的拖动,当用户向后划动。设置一个布尔值将禁用移动事件这是没有好,并设置视图返回到一个已知的好点的跳动。
有这个任何地方没有答案,所以我不知道,如果它甚至有可能...
Image showing intended result的Android停止拖出屏幕从View
的中心点有没有办法阻止拖过使用onTouch移动事件屏幕视图的中心点?
我可以检测点,但我需要的逻辑停止视图移动,然后重新接合的拖动,当用户向后划动。设置一个布尔值将禁用移动事件这是没有好,并设置视图返回到一个已知的好点的跳动。
有这个任何地方没有答案,所以我不知道,如果它甚至有可能...
您可以使用此做出限制在屏幕边界的视图。
int width=v.getLayoutParams().width;;
int height=v.getLayoutParams().height;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
dX = v.getX() - event.getRawX();
dY = v.getY() - event.getRawY();
return true;
case MotionEvent.ACTION_MOVE:
if (width == windowWidth && height == windowHeight){}
else {
v.animate()
.x(event.getRawX() + dX)
.y(event.getRawY() + dY)
.setDuration(0)
.start();
if (event.getRawX() + dX + width > windowWidth) {
v.animate()
.x(windowWidth - width)
.setDuration(0)
.start();
}
if (event.getRawX() + dX < 0) {
v.animate()
.x(0)
.setDuration(0)
.start();
}
if (event.getRawY() + dY + height > windowHeight) {
v.animate()
.y(windowHeight - height)
.setDuration(0)
.start();
}
if (event.getRawY() + dY < 0) {
v.animate()
.y(0)
.setDuration(0)
.start();
}
return true;
}
其中v是在onTouchListener
认为这是一半的时候有我的代码来实现,不过鉴于只有向下移动,右。我需要它移动顶部和左边,任何想法如何适应这个或我要去哪里错了? –
请上传过来的完整代码,您使用的是移动,因为这个代码是为我工作完美。 – Anmol
好吧,你是正确的代码是好的。我创建了一个自定义视图,它可以设置几个维度,并在创建时移动布局。这就是为什么什么也没有为我工作好,大量的试验和错误上移动的利润率,我终于得到了在那里我需要的不过之后。感谢Anmol的帮助,非常感谢! –