2011-01-05 22 views
2

こんにちは 私はLinearLayout(垂直方向)に2つの画像ビューを持っています。私は両方のImageviewsのsetOnTouchListenerを設定しています。 この方法で、私はマルチタッチズームとImageViewsのすべてのドラッグを観察することができます。 OnDoubletapListenerを実装しようとすると問題が発生します。 OnDoubleTapListenerは、setOnTouchListenerを使用しないでのみ機能します。私はその後、setOnTouchListnerコメント場合は、私はダブルタップを実行することができる午前Androidマルチタッチとダブルタップを併用して画像を表示する

..

2 fearturesが同時に動作することはできません?????私は、同様のソースコードを提供することができますしたい場合は

.. P1のヘルプ

Ankitバーマ

答えて

0

あなたに役立つかもしれない、下のリンクを確認してくださいは http://android-journey.blogspot.com/2010/01/android-gestures.html

GestureDetectorを..implements GestureDetector.OnDoubleTapListener {ダブルタップまたは確定シングルタップが発生したときに通知するために使用されるリスナー。 }

+0

こんにちはManeeshを返信しなければなりません....お返事をいただき、ありがとうございます。しかし、私はダブルタッチだけでなくImageview.GestureDetectorクラスのMultiTouchを扱うためにMultiTouchを処理しない、それはビューのsetOnTOuchListenerを使用して処理することができますを処理するために探しています。onTouchListenerを設定すると、GestureDetectorを使用できなくなります。 –

1

あなたはまだ同じ問題に悩まされていますが、私はそれを回避する方法を見つけたのか分かりません。実際、私はマルチタッチイベント用のOnTouchListnerを実装するだけで、ACTION_DOWNへの2回の呼び出しの間の時間を測定します。その時間がある値よりも小さい場合、私はこれがダブルタッチであると考え、結果的にその動作を実行します。希望が役立ちます。 OnTouchListnerとGestureDetector.OnDoubleTapListenerの両方を実装する方法が見つかった場合はお知らせください。

2

私はまた、同じタイプの問題に直面している....私はこの方法で解決していた...

あなたはダブルタップ

をするためにマルチタッチ

とGestureDetector http://www.41post.com/4194/programming/android-detecting-double-tap-eventsのためのアンドロイドmutitouchコントローラhttp://code.google.com/p/android-multitouch-controller/を使用している場合

更新MultiTouchController.javaでこの手順を

より

- > IMP ORT

import android.view.GestureDetector.OnDoubleTapListener; 

    import android.view.GestureDetector.OnGestureListener; 

- >実施

public class MultiTouchController<T> implements OnGestureListener{ 

- >

public MultiTouchController(MultiTouchObjectCanvas<T> objectCanvas2, boolean handleSingleTouchEvents) { 

      //.... 

    gd = new GestureDetector(this); 

    // set the on Double tap listener 
    gd.setOnDoubleTapListener(new OnDoubleTapListener() { 
     @Override 
     public boolean onDoubleTap(MotionEvent e) { 
      // set text color to green 
      Log.d("CLICK", "double taped"); 



      return false; 
     } 

     @Override 
     public boolean onDoubleTapEvent(MotionEvent e) { 
      // if the second tap hadn't been released and it's being moved 
      if (e.getAction() == MotionEvent.ACTION_MOVE) { 
       Log.d("CLICK", "double tap event ACTION_MOVE"); 
      } else if (e.getAction() == MotionEvent.ACTION_UP)// user 
                   // released 
                   // the 
                   // screen 
      { 
       Log.d("CLICK", "double tap event ACTION_UP"); 
      } 
      return false; 
     } 

     @Override 
     public boolean onSingleTapConfirmed(MotionEvent e) { 
      // set text color to red 
      Log.d("CLICK", "single taped"); 

      return true; 
     } 
    }); 

- >設定タッチイベントonTouch(MotionEventイベント)

public boolean onTouchEvent(MotionEvent event) { 

    gd.onTouchEvent(event); 

    try { 

       //..... 

でGDします他のファイルでは変更しないでください。

は今...あなたが問題を解決したホープテスト... ...

関連する問題