Ответ 1
Я отвечаю на свой вопрос. Благодаря вышеизложенному @Jason. Я зарегистрировал onTouchEvent
для всех просмотров.
Он отлично работает.
Более конкретно, где я могу прикрепить OnGestureListener
, чтобы
Я могу обнаружить onSingleTapUp
всюду на экране,
даже если ImageView
занимает половину экрана.
Теперь у меня есть Listener на Activity, у которого есть ImageView.
Но Listener только срабатывает, когда я выхожу за пределы ImageView.
Я читаю и пытаюсь понять это, но не могу понять.
этот код находится в 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;
}
Я отвечаю на свой вопрос. Благодаря вышеизложенному @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
}
Теперь, нажав на экран, вызывается метод выше.