Ejemplo n.º 1
0
  public void update() {
    ImageView imageView = getImageView();

    if (null != imageView) {
      if (mZoomEnabled) {
        // Make sure we using MATRIX Scale Type
        setImageViewScaleTypeMatrix(imageView);

        // Update the base matrix using the current drawable
        updateBaseMatrix(imageView.getDrawable());
      } else {
        // Reset the Matrix...
        resetMatrix();
      }
    }
  }
Ejemplo n.º 2
0
  @SuppressLint("NewApi")
  public PhotoViewAttacher(ImageView imageView) {
    mImageView = imageView;

    imageView.setDrawingCacheEnabled(true);
    imageView.setOnTouchListener(this);

    ViewTreeObserver observer = imageView.getViewTreeObserver();
    if (null != observer) observer.addOnGlobalLayoutListener(this);

    // Make sure we using MATRIX Scale Type
    setImageViewScaleTypeMatrix(imageView);

    if (imageView.isInEditMode()) {
      return;
    }
    // Create Gesture Detectors...
    mScaleDragDetector = VersionedGestureDetector.newInstance(imageView.getContext(), this);

    mGestureDetector =
        new GestureDetector(
            imageView.getContext(),
            new GestureDetector.SimpleOnGestureListener() {

              // forward long click listener
              @Override
              public void onLongPress(MotionEvent e) {
                if (null != mLongClickListener) {
                  mLongClickListener.onLongClick(getImageView());
                }
              }
            });

    mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));

    // Finally, update the UI so that we're zoomable
    setZoomable(true);
  }