Android按钮TouchListener垂直运动

时间:2013-12-22 15:19:58

标签: android drag-and-drop ontouchlistener

我用它 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;
        }
    }
}

按下按钮进行拖放操作。 如何改变它只是在垂直方向上的运动?

1 个答案:

答案 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的工作原理。