Как сделать так, чтобы при просмотре в Android изображение не становилось меньше исходного размера? - PullRequest
0 голосов
/ 26 июня 2019

Я использую TouchImageView для увеличения и уменьшения масштаба.Все работает нормально, за исключением того, что когда я ущипнул, изображение будет меньше оригинальной ширины и высоты.Как это предотвратить?поэтому пользователь не может ущипнуть, когда изображение не увеличено.

Что я сделал до сих пор

    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
            @Override
            public boolean onScaleBegin(ScaleGestureDetector detector) {
                setState(State.ZOOM);
                return true;
            }

            @Override
            public boolean onScale(ScaleGestureDetector detector) {

// check pinch and out, but detector.getFocusX() > 320 && detector.getFocusY() > 220 not working for all conditions

                if (detector.getScaleFactor() > 1) {
                    scaleImage(detector.getScaleFactor(), detector.getFocusX(), detector.getFocusY(), true);
                }else {
                      if (detector.getFocusX() > 320 && detector.getFocusY() > 220){
                          scaleImage(detector.getScaleFactor(), detector.getFocusX(), detector.getFocusY(), true);
                      }
                }

                //
                // OnTouchImageViewListener is set: TouchImageView pinch zoomed by user.
                //
                if (touchImageViewListener != null) {
                    touchImageViewListener.onMove();
                }
                return true;
            }

            @Override
            public void onScaleEnd(ScaleGestureDetector detector) {
                super.onScaleEnd(detector);
                setState(State.NONE);
                boolean animateToZoomBoundary = false;
                float targetZoom = normalizedScale;
                if (normalizedScale > maxScale) {
                    targetZoom = maxScale;
                    animateToZoomBoundary = true;

                } else if (normalizedScale < minScale) {
                    targetZoom = minScale;
                    animateToZoomBoundary = true;
                }

                if (animateToZoomBoundary) {
                    DoubleTapZoom doubleTap = new DoubleTapZoom(targetZoom, viewWidth / 2, viewHeight / 2, true);
                    compatPostOnAnimation(doubleTap);
                }
            }
        }
...