Android:如何判断用户是按下,向下,向左还是向右?

时间:2015-06-18 04:11:00

标签: java android

我创建了一个onTouchEvent来查找用户触摸的位置并将我的对象移动到该位置。我想要做的是如果用户按下屏幕,对象会向上移动一定距离。和其他方向一样。我知道我需要一些if语句才能做到这一点,但我不知道该怎么做。有没有人有任何建议或知道如何做到这一点,谢谢

public boolean onTouchEvent(MotionEvent ev) {

    if(ev.getAction() == MotionEvent.ACTION_DOWN) {
        // the new image position became where you touched
        x = ev.getX();
        y = ev.getY();


    // if statement to detect where user presses down        
    if(){
    }
        // redraw the image at the new position
        Draw.this.invalidate();
    }
    return true;
}

3 个答案:

答案 0 :(得分:0)

试试这个

{{1}}

答案 1 :(得分:0)

试试这个:

layout_counter.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event)
    {
        if (currentState != State.EDIT_MOVE) return false;

        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
        if (view.getId() != R.id.layout_counter) return false;

        switch (event.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                params.topMargin = (int) event.getRawY() - view.getHeight();
                params.leftMargin = (int) event.getRawX() - (view.getWidth() / 2);
                view.setLayoutParams(params);
                break;

            case MotionEvent.ACTION_UP:
                params.topMargin = (int) event.getRawY() - view.getHeight();
                params.leftMargin = (int) event.getRawX() - (view.getWidth() / 2);
                view.setLayoutParams(params);
                break;

            case MotionEvent.ACTION_DOWN:
                view.setLayoutParams(params);
                break;
        }

        return true;
    }
});

答案 2 :(得分:0)

你需要使用更适合android的拖放框架的writer=csv.writer(m,delimiter=',',quotechar=('\n"'),quoting=csv.QUOTE_ALL)

请注意以下示例:

OnLongClickListener

以上代码取自here,演示了如何拖放以及如何在拖动时执行某些操作。 我也使用了类似的东西。