我用它 TouchListener
private final class MyTouchListener implements OnTouchListener {
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("", "");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(
view);
view.startDrag(data, shadowBuilder, view, 0);
view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
}
按下按钮进行拖放操作。 如何改变它只是在垂直方向上的运动?
答案 0 :(得分:0)
您想要开始拖动Action.MOVE。尝试以下内容:
if(ev.getAction() == MotionEvent.ACTION_MOVE) {
int dx = lastX - ev.getX();
int dy = lastY - ev.getY();
//do something here.
lastX = ev.getX();
lastY = ev.getY();
}
现在你可以检查像if(dy> dx)startDrag这样的东西来解释触摸污点。此外,您现在可以将按钮移动到ev.getY()并忽略ev.getX()。
查看此链接,详细了解touch dispatch的工作原理。