windowView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();
if ((event.getAction() == MotionEvent.ACTION_DOWN)
&& ((x < 0) || (x >= v.getWidth()) || (y < 0) || (y >= v
.getHeight()))) {
window.dismiss();
return true;
} else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
window.dismiss();
return true;
} else {
return v.onTouchEvent(event);
}
}
});
@Override
public boolean onTouch(View v, MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();
if ((event.getAction() == MotionEvent.ACTION_DOWN)
&& ((x < 0) || (x >= v.getWidth()) || (y < 0) || (y >= v
.getHeight()))) {
window.dismiss();
return true;
} else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
window.dismiss();
return true;
} else {
return v.onTouchEvent(event);
}
}
});