@Override
  public boolean onDoubleTap(MotionEvent ev) {
    if (photoViewAttacher == null) return false;

    try {
      float scale = photoViewAttacher.getScale();
      float x = ev.getX();
      float y = ev.getY();

      if (scale < photoViewAttacher.getMediumScale()) {
        photoViewAttacher.setScale(photoViewAttacher.getMediumScale(), x, y, true);
      } else if (scale >= photoViewAttacher.getMediumScale()
          && scale < photoViewAttacher.getMaximumScale()) {
        photoViewAttacher.setScale(photoViewAttacher.getMaximumScale(), x, y, true);
      } else {
        photoViewAttacher.setScale(photoViewAttacher.getMinimumScale(), x, y, true);
      }
    } catch (ArrayIndexOutOfBoundsException e) {
      // Can sometimes happen when getX() and getY() is called
    }

    return true;
  }
Exemplo n.º 2
0
 @Override
 public float getMaximumScale() {
   return mAttacher.getMaximumScale();
 }