2017-04-06 8 views
0

私は実際にイメージにいくつかの図形(四角形や円)を表示する必要があるモバイルアプリケーションをプログラミングしています。私はイメージ上に図形を描くことができました。私はズームシステム(ピンチズームとダブルタップズーム)も追加しました。最後に、イメージに描かれたすべての図形に対してtouchEventsを実装しました。 ここで私の問題は、画像がズームされていないときに、私は形状をタップすることができます、touchEventsは完全に動作しています。しかし、画像がズームされると、ズームのないときにシェイプのタッチイベントエリアがシェイプの座標に固定されます。タッチイベントエリアはシェイプ上に留まるためにズームで「移動」しません。androidStudioのpinchZoomの機能で、TouchImageViewのtouchEventエリアを設定するにはどうすればよいですか?

この問題を解決する方法はありますか?

+0

は、あなたがこの 'Matrix'適用する必要があり、')( 'getImageMatrixを参照してくださいあなたのタッチポイント – pskink

+0

OKに(または'反転を() '1を編)!私はそのthxを検索するつもりだ! –

+0

s'il vousplaît;-) – pskink

答えて

0
pImageView.setOnTouchListener(new View.OnTouchListener(){ 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction() == MotionEvent.ACTION_DOWN){ 
       double x = event.getX(); 
       double y = event.getY(); 
       float zoom = pImageView.getCurrentZoom(); 
       for(int i=0;i<shapes.size();i++) { 
        if (shapes.get(i).contains(x,y,zoom)) { 
         listener.onTouch(shapes.get(i)); 
        } 
       } 
      } 
      return true; 
     } 
    }); 
    return pImageView; 
+0

これは私のonTouchリスナーです。私はタッチの座標を取得し、もしその座標がメソッドに –

+0

の形をしているならばそのチェックを行い、 'x'と' y'を 'Matrix#mapPoints'に渡す必要があります – pskink