如何区分显示屏右侧/左侧的水龙头?

时间:2018-02-20 17:09:19

标签: java android motionevent

我认为这是一个非常相关且常见的问题,但我无法找到答案。 目前我有这个方法:

public boolean onTouchEvent (MotionEvent evt){
  if (evt.getAction() == MotionEvent.ACTION_DOWN) {
     do stuff ...
  }
}

因此,如果用户点击屏幕(无论在哪里),代码就会被执行。现在我想要区分显示器的右侧和左侧(左侧表示 - >返回)。

2 个答案:

答案 0 :(得分:1)

你可以通过很多方式做到这一点。这是其中之一:

onTouch侦听器附加到视图,该视图会延伸到其边缘。 (例如,您的RelativeLayout保留其余视图)

private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        float halfOfAScreen = mainLayout.getMaxWidth() / 2;
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                float fingerPosition = event.getX();
                if(fingerPosition < halfOfAScreen) {
                    onBackPressed();
                }
                return true;
            default: 
                return false;
        }
    }
};

答案 1 :(得分:0)

请参阅this帖子,了解如何获取触摸位置。

在您的情况下,您似乎会使用

int x = (int)event.getX();
int y = (int)event.getY();

并在您希望应用对其做出反应的布局范围内工作。