Как я могу обнаружить нажатие на экран?

Более конкретно куда мне прикрепить OnGestureListener чтобы
Я могу обнаружить onSingleTapUp везде на экране,
даже если ImageView занять половину экрана.

Теперь у меня есть Слушатель на Activity, который имеет 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;
}

2 ответа

Решение

Я отвечаю на свой вопрос. Благодаря вышеупомянутому @Jason. Я зарегистрировался onTouchEvent на все мнения.
Работает отлично.

Обнаружение касания экрана

Я отвечаю на это тем, кому нужен простой способ обнаружить нажатие на экран:

  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">
    
  2. Добавьте этот метод к вашему Activity используя то же имя, которое вы указали для onClick:

    public void screenTapped(View view) {
        // Your code here
    }
    

Теперь, нажав на экран, вызовем метод выше.

Другие вопросы по тегам