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

时间:2016-10-14 04:48:57

标签: android imageview zooming

我正在双击某个特定点缩放图像视图。在双击事件中它完美地放大但我想实现缩小的功能,当用户双击时图像被缩放但是当他再次双击时,缩放的图像必须回到原始尺寸 怎么做到这一点?任何帮助将不胜感激 这是我的代码

 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;
        }
    });

1 个答案:

答案 0 :(得分:0)

最佳做法是扩展imageView并制作customImageView。

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

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