Erik Erik - 20 days ago 6
Android Question

How can I detect tap on the screen?

More specific where do I attach

OnGestureListener
so that

I can detect
onSingleTapUp
everywhere on the screen,

even if an
ImageView
take up half the screen.

Now I have the Listener on the Activity that has an ImageView.

But the Listener only fire when I click outside the ImageView.

I read and try to understand this but cannot get it right.

this code is in the 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;
}

Answer

I'm answering my own question. Thanks to the above @Jason. I have registered onTouchEvent to all views.
It works great.