2

こんにちは、LinearLayout(垂直方向)に2つのイメージビューがあります。両方の Imageview に setOnTouchListener を設定しています。このようにして、マルチタッチズームと ImageViews のすべてのドラッグを観察できます。OnDoubletapListener を実装しようとすると問題が発生します。OnDoubleTapListener は、setOnTouchListener を使用しない場合にのみ機能します。

ただし、setOnTouchListner にコメントすると、ダブルタップを実行できます。

2つの恐れが同時に働くことはできませんか?????

必要に応じて、ソース コードも提供できます.. Pl ヘルプ

アンキット・ヴェルマ

4

3 に答える 3

2

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

マルチタッチ用のAndroidマルチタッチコントローラーhttp://code.google.com/p/android-multitouch-controller/を使用している場合

およびGestureDetectorhttp ://www.41post.com/4194/programming/android-detecting-double-tap-eventsfor double tap

よりも

MultiTouchController.javaでこの手順を更新します

->インポート

  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 event)でタッチイベントをgdに設定

   public boolean onTouchEvent(MotionEvent event) {

    gd.onTouchEvent(event);

    try {

               //.....

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

今テスト...あなたが問題を解決したことを願っています...返信する必要があります...

于 2011-12-03T08:01:47.233 に答える
1

まだ同じ問題に悩まされているかどうかはわかりませんが、回避する方法を見つけました。実際、マルチタッチ イベント用に OnTouchListner を実装するだけで、ACTION_DOWN への 2 つの呼び出し間の時間を測定します。その時間が一定値より小さければダブルタッチと判断してアクションを実行します。それが役立つことを願っています。OnTouchListner と GestureDetector.OnDoubleTapListener の両方を実装する方法を見つけた場合は、お知らせください。

于 2011-07-13T19:16:28.647 に答える
0

以下のリンクを確認してください。役に立つかもしれません..GestureDetector を実装します

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

于 2011-01-05T12:58:11.107 に答える