0

Я не знаю, как подключить onTouchListener к SimpleOnGestureListener, потому что onTouchlistener принимает только свой тип - touchlistener.Как сделать конкретное изображениеПросмотр ответа на простой прослушиватель жестов, как связать onTouchListener с simpleGestureListener?

способ, которым я это сделал: onTouchEvent (не конкретный imageView onTouch) дает событию объект gestureDetector для обработки.

Результатом является Активность, способная обнаруживать проблескивание, двойное касание и другие простые жесты.

Но я хочу только конкретные ImageView реагировать и распознавать DoubleTap

public class MainActivity extends Activity { 
private class Erjan_gestures extends SimpleOnGestureListener{ 

    @Override 
    public boolean onDoubleTap(MotionEvent e) { 
     Log.wtf("x", "double tap occured!"); 
     return true ; 
    } 
} 

Button button; 
ImageView image ; 

GestureDetector gestureDetector; 
int oldW , oldH ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    image = (ImageView) findViewById(R.id.card); 
    button = (Button) findViewById(R.id.button); 

    oldW = 500; 
    oldH = 600; 

    gestureDetector = new GestureDetector(new Erjan_gestures()); 
    gestureDetector.setIsLongpressEnabled(true); 


    image.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      Log.wtf("x", "card's onTouch"); 
      //HOW TO CONNECT this ontouch to simple gesturelistener(class above)? 
      return true; 
     } 
    }); 
} 

@Override 
public boolean onTouchEvent(MotionEvent event){ 
    Log.wtf("x", "-------------------------------onTouchEvent(MotionEvent event)"); 
    return gestureDetector.onTouchEvent(event) ; 
} 

}

Как подключить образ onTouch распознавать простые жесты?

ответ

0

Я не нашел лучшего решения, чем просто проверить для координат motionEvent:

private class Erjan_gestures extends SimpleOnGestureListener{ 
@Override 
     public boolean onDoubleTap(MotionEvent e) { 
      float e_x = e.getRawX(); 
      float e_y = e.getRawY(); 
      if(e_x > 1360 && e_x < 1733 && e_y > 465 && e_y < 1028){ 
       doubleTapHappened = true ;//DESIRED ACTION 
       Log.wtf("x", "double tap occured on CARD!"); 
      } 

      return true ; 
     } 

пока не могу писать свои собственные взгляды, которые реагируют на жесты в нужный лад. Поэтому я просто проверяю на , где произошел крана.