android 如何检查 imageview 当前是否缩放?

How to check if imageview is currently zoomed or not in android?

我正在通过双击将图像视图缩放到某些特定点。在双击事件中,它可以完美放大,但我也想实现缩小的功能,当用户双击图像时,图像被放大,但当他再次双击时,放大的图像必须恢复到原始大小 如何做到这一点?任何帮助将不胜感激 这是我的代码

 ImageView iv;
 private Matrix matrix = new Matrix();
 Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(
 getResources(), R.drawable.demoimg), size.x, size.y, true);
 iv.setImageBitmap(bmp);
 original_matrix = iv.getImageMatrix();
 iv.setOnTouchListener(new View.OnTouchListener() {
        private GestureDetector gestureDetector = new GestureDetector(SecondActivity.this, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onDoubleTap(MotionEvent e) {

                float scalefactor = Math.max(1.1f, Math.min(3.0f, 4.0f));
                float x = e.getX();
                float y = e.getY();
                matrix.setScale(scalefactor, scalefactor, x, y);
                iv.setImageMatrix(matrix);
                return super.onDoubleTap(e);


            }

        });

        @Override
        public boolean onTouch(View v, MotionEvent event) {
           /* Toast.makeText(getApplicationContext(), "On Touch Event Called",
                    Toast.LENGTH_LONG).show();*/
            gestureDetector.onTouchEvent(event);
            return true;
        }
    });

最佳做法是扩展 imageView 并制作自定义 ImageView。

在您的 customImageView 中保持图像的原始大小和图像当前状态的轨迹(缩放 in/out),然后在您的 xml 中使用您的 customImageView 而不是 android imageView 。

您可以将您的缩放方法放在您的 customImageView 中。然后你有一个 customImageView 知道如何放大,回到原来的大小和它的当前状态。