Как я могу обнаружить нажатие на экран?
Более конкретно куда мне прикрепить 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
на все мнения.
Работает отлично.
Обнаружение касания экрана
Я отвечаю на это тем, кому нужен простой способ обнаружить нажатие на экран:
Добавить
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">
Добавьте этот метод к вашему
Activity
используя то же имя, которое вы указали дляonClick
:public void screenTapped(View view) { // Your code here }
Теперь, нажав на экран, вызовем метод выше.