2011-01-05 2 views
2

Привет У меня есть два изображения в LinearLayout (вертикальная ориентация). Я устанавливаю setOnTouchListener для обоих изображений. Таким образом, я могу наблюдать за мульти касанием, а также за перетаскивание ImageViews. Проблема возникает, когда я пытаюсь реализовать OnDoubletapListener. OnDoubleTapListener работает только без использования setOnTouchListener.Android multi touch и двойной кран, работающий вместе для просмотра изображений

Однако если я комментировать setOnTouchListner тогда я в состоянии выполнить Double Tap ..

не может работать одновременно два Feartures ?????

Если Вы хотите, чтобы я могу предоставить исходный код, а .. Pl Помощь

Анкит Верма

ответ

0

Пожалуйста, проверьте ссылку ниже, может быть полезным для вас ..implements GestureDetector http://android-journey.blogspot.com/2010/01/android-gestures.html

GestureDetector.OnDoubleTapListener {Слушатель, который используется для уведомления при двойном касании или подтверждении однократного нажатия. }

+0

Hi Maneesh .... Спасибо за ваш ответ. Но я ищу для обработки Double Tap, а также Multi Touch для класса Imageview.GestureDetector не обрабатывает MultiTouch, его можно обрабатывать только с помощью setOnTOuchListener для представления.и как только вы установите onTouchListener, вы не можете использовать GestureDetector. –

1

Эй, я не знаю, если вы все еще придерживаетесь одной и той же проблемы, но я нашел способ обойти это. Фактически, я просто реализую OnTouchListner для событий мультитач, и я измеряю время между двумя вызовами ACTION_DOWN. Если это время меньше определенного значения, я считаю, что это двойное касание, и поэтому я выполняю действия. Надеюсь, это поможет. Если вы нашли способ реализовать как OnTouchListner, так и GestureDetector.OnDoubleTapListener, пожалуйста, дайте мне знать!

2

Я также сталкиваюсь с этой же проблемой типа .... я решаю с этим способом ...

Если Вы используете андроид контроллер mutitouch http://code.google.com/p/android-multitouch-controller/ для мультитач

и GestureDetector http://www.41post.com/4194/programming/android-detecting-double-tap-events для двойного нажатия

чем

обновление данных действий в 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 событий)

public boolean onTouchEvent(MotionEvent event) { 

    gd.onTouchEvent(event); 

    try { 

       //..... 

Не изменяйте никакие другие файлы.

Теперь тест ... Надеюсь, вы решили проблему ... должны ответить ...