Android 如何检测屏幕上的点击?

Android 如何检测屏幕上的点击?,android,gesturedetector,Android,Gesturedetector,更具体地说,我应该将OnTestureListener附加到哪里,以便 我可以在屏幕上的任何地方检测到onSingleTapUp, 即使ImageView占据了屏幕的一半 现在我有了活动的侦听器,该活动具有ImageView。 但是侦听器只有在我在ImageView外部单击时才会启动 我阅读并试图理解这一点,但无法正确理解 此代码位于活动中 public boolean onSingleTapUp(MotionEvent e) { //addtext.setText("-" + "SI

更具体地说,我应该将
OnTestureListener附加到哪里
,以便
我可以在屏幕上的任何地方检测到
onSingleTapUp

即使
ImageView
占据了屏幕的一半

现在我有了活动的侦听器,该活动具有ImageView。
但是侦听器只有在我在ImageView外部单击时才会启动

我阅读并试图理解这一点,但无法正确理解

此代码位于活动中

 public boolean onSingleTapUp(MotionEvent e) {
    //addtext.setText("-" + "SINGLE TAP UP" + "-");
    //Log.d(TAG, "- + SINGLE TAP UP + - ***********************************************************************");  
    int btnsize = buttonSave.getHeight();
    int viewWidth = display.getWidth();
    int viewHeight = display.getHeight();

    // RIGHT SIDE SCREEN
    if(e.getX()> (viewWidth*0.7)){
        Log.d(TAG, "RIGHT SIDE");
        if(e.getY()> viewHeight*0.7){         
            Log.d(TAG, "right down on screen");
        }else if(e.getY()> (viewHeight*0.45)){ 
            Log.d(TAG, "right middle on screen   ");
        }
    }
    // LEFT SIDE SCREEN
    if(e.getX()< (viewWidth*0.3)){
        Log.d(TAG, "LEFT SIDE");
        if(e.getY()> viewHeight*0.7){ 
            Log.d(TAG, "Left middle on screen  ");
        }else if(e.getY()> (viewHeight*0.45)){
            Log.d(TAG, "Left down on screen ");
        }
    }
    return true;
}
public boolean onsingletapp(运动事件e){
//addtext.setText(“-”+“单点击”+“-”);
//Log.d(标记为“-+单点启动+-**********************************************************************************************************”;
int btnsize=buttonSave.getHeight();
int viewWidth=display.getWidth();
int viewHeight=display.getHeight();
//右侧屏幕
如果(例如getX()>(viewWidth*0.7)){
日志d(标签“右侧”);
如果(e.getY()>viewHeight*0.7){
Log.d(标签“屏幕右下”);
}如果(e.getY()>(viewHeight*0.45)){
Log.d(标签,“屏幕右中”);
}
}
//左侧屏幕
如果(例如getX()<(viewWidth*0.3)){
日志d(标签“左侧”);
如果(e.getY()>viewHeight*0.7){
Log.d(标签,“屏幕左中”);
}否则如果(例如getY()>(视图高度*0.45)){
Log.d(标签“屏幕左下”);
}
}
返回true;
}

我在回答我自己的问题。感谢上面的@Jason。我已向所有视图注册了onTouchEvent。
它工作得很好。

检测屏幕点击 我回答这个问题是为了那些只需要一个简单的方法来检测屏幕上的点击的人:

  • android:onClick
    值添加到基本/根布局(LinearLayout、RelativeLayout等)。你可以随意称呼它,我将它命名为
    screenstapped
    ,作为一个例子:

    
    
  • 使用为
    onClick
    指定的相同名称将此方法添加到您的
    活动中:

    public void屏幕点击(视图){
    //你的代码在这里
    }
    

  • 现在,点击屏幕将调用上述方法。

    不确定是否有更好的方法,但您可以将onTouchEvent注册到所有视图中