@Override public boolean onSingleTapUp(MotionEvent e) { // Links get preference if (bookView.hasLinkAt(e.getX(), e.getY())) { return false; } final int TAP_RANGE_H = bookView.getWidth() / 5; final int TAP_RANGE_V = bookView.getHeight() / 5; if (e.getX() < TAP_RANGE_H) { return bookViewListener.onTapLeftEdge(); } else if (e.getX() > bookView.getWidth() - TAP_RANGE_H) { return bookViewListener.onTapRightEdge(); } int yBase = bookView.getScrollY(); if (e.getY() < TAP_RANGE_V + yBase) { return bookViewListener.onTapTopEdge(); } else if (e.getY() > (yBase + bookView.getHeight()) - TAP_RANGE_V) { return bookViewListener.onTopBottomEdge(); } this.bookViewListener.onScreenTap(); return false; }