如何检测屏幕上的点按?

Eri*_*rik 9 android gesturedetector

更具体的我在哪里附加,OnGestureListener以便
我可以onSingleTapUp在屏幕上的任何地方检测到,
即使ImageView占据屏幕的一半.

现在我在Activity上有一个带有ImageView的Listener.
但是当我在ImageView外部单击时,Listener才会触发.

我阅读并尝试理解这一点,但无法做到正确.

此代码位于Activity中.

 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;
}
Run Code Online (Sandbox Code Playgroud)

She*_*yar 8

检测屏幕点击

对于那些只需要一种简单的方法来检测屏幕上的点击的人,我正在回答这个问题:

  1. android:onClick向基础/根布局添加值(LinearLayout,RelativeLayout等).你可以把它叫做任何你想要的东西,我把它命名screenTapped为一个例子:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:onClick="screenTapped">
    
    Run Code Online (Sandbox Code Playgroud)
  2. Activity使用您为其指定的相同名称将此方法添加到您的方法onClick:

    public void screenTapped(View view) {
        // Your code here
    }
    
    Run Code Online (Sandbox Code Playgroud)

现在,点击屏幕将调用上面的方法.


Eri*_*rik 1

我正在回答我自己的问题。感谢上面的@Jason。我已经注册onTouchEvent了所有视图。
效果很好。