2016-10-14 8 views
0

ダブルタップで画像ビューをいくつかの特定の点にズームしています。ダブルタップイベントでそれは完全にズームインしかし、私はあまりにもズームアウトの機能を実装するためにユーザがダブルタップは、画像がズームされたときにことをしたいが、彼はダブルもう一度タップするとズーム画像は、これを行う方法を元のサイズ に戻らなければなりませんか?すべてのヘルプはここ を理解されるであろう私のコードはandroidでimageviewが現在ズームされているかどうかを確認するには?

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

ゾームエフェクトは機能していますか? –

+0

はい、それは完全にズームインします...今ダブルタップをズームアウトしたいと思います。私case..notが、私の場合は、ダブルタップで作業 – User

+0

に戻って設定をダブルタップで、その後currenltyズームイン私がいるかどうかをチェックしますチェックがあるかもしれません意味:P –

答えて

0

でのベストプラクティスは、ImageViewのを拡張し、あなたのcustomImageViewを作ることです。

あなたのcustomImageViewでは、画像の元のサイズと画像の現在の状態(ズームイン/ズームアウト)を維持してから、XMLでアンドロイドimageViewの代わりにcustomImageViewを使用します。

あなたのcustomImageViewであなたのズーム方法を置くことができます。次に、ズームインし、元のサイズとその現在の状態に戻す方法を知っているcustomImageViewがあります。

+0

をIあなたのポイントを持っていますが、私の混乱はイメージの現在の状態のトラックを維持する方法ですか? – User

+0

ズーム方式は、その真の偽ので、画像をズームインする必要があり、場合には、trueに設定するchanhedしなければならないことを確認し、いつでも呼ばれた後、いつでもデフォルト値falseを持つ「isZoomedIn」のようなあなたのcustomImageViewにブールフィールドを追加します。画像をズームアウトする必要があり、falseに設定する必要があります。 –

+0

ええとこれを試しましたが、これを行うことで私のイメージは夕方にズームインされていません:( – User

関連する問題