在Android中,从左向右滑动视图,反之亦然
我有一个图标,它位于屏幕的右侧,我给它一个-25dp的边距,所以它不是完全可见的,我希望用户能够移动按钮,同时触摸它,直到它被完全查看,并返回到它的位置。 我尝试了许多代码,如下面的代码,但我无法计算每个屏幕分辨率的正确滑动值,有人能帮我找到更好的解决方案吗在Android中,从左向右滑动视图,反之亦然,android,animation,swipe,slide,gesture,Android,Animation,Swipe,Slide,Gesture,我有一个图标,它位于屏幕的右侧,我给它一个-25dp的边距,所以它不是完全可见的,我希望用户能够移动按钮,同时触摸它,直到它被完全查看,并返回到它的位置。 我尝试了许多代码,如下面的代码,但我无法计算每个屏幕分辨率的正确滑动值,有人能帮我找到更好的解决方案吗 您想将其移动到屏幕上的任何位置,还是仅移动x轴或y轴?x轴,直到用户从右到左完全看到图像,然后用户可以将其返回您的移动工作?只有密度问题?哪一个是屏幕端?我可以在水平视图中将其从右向左移动,但我无法猜测用户何时可以完全查看图像,因此他无法再
您想将其移动到屏幕上的任何位置,还是仅移动x轴或y轴?x轴,直到用户从右到左完全看到图像,然后用户可以将其返回您的移动工作?只有密度问题?哪一个是屏幕端?我可以在水平视图中将其从右向左移动,但我无法猜测用户何时可以完全查看图像,因此他无法再滑动。
class DragExperimentTouchListener implements View.OnTouchListener {
public DragExperimentTouchListener(float initalX, float initialY) {
lastX = initalX;
lastY = initialY;
}
boolean isDragging = false;
float lastX;
float lastY;
float deltaX;
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (gestureDetector.onTouchEvent(arg1)) {
// single tap
return true;
} else {
// your code for move and drag
int action = arg1.getAction();
if (action == MotionEvent.ACTION_DOWN && !isDragging) {
isDragging = true;
deltaX = arg1.getX();
return true;
} else if (isDragging) {
if (action == MotionEvent.ACTION_MOVE) {
if (arg0.getX() >= ??) {
arg0.setX(arg0.getX() + arg1.getX() - deltaX);
arg0.setY(arg0.getY());
}
return false;
} else if (action == MotionEvent.ACTION_UP) {
isDragging = false;
lastX = arg1.getX();
lastY = arg1.getY();
return false;
} else if (action == MotionEvent.ACTION_CANCEL) {
arg0.setX(lastX);
arg0.setY(lastY);
isDragging = false;
return false;
}
}
}
return false;
}
}