我认为这是一个非常相关且常见的问题,但我无法找到答案。 目前我有这个方法:
public boolean onTouchEvent (MotionEvent evt){
if (evt.getAction() == MotionEvent.ACTION_DOWN) {
do stuff ...
}
}
因此,如果用户点击屏幕(无论在哪里),代码就会被执行。现在我想要区分显示器的右侧和左侧(左侧表示 - >返回)。
答案 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();
并在您希望应用对其做出反应的布局范围内工作。