Basierend auf diversen Tutorials und Beispielen habe ich mir das hier zur Erkennung einer Scroll-Geste zusammengebaut:
Code
		
					
			public class MapView extends View implements GestureDetector.OnGestureListener
{
   private float           drawXOffs=0.0f,drawYOffs=0.0f,rawX,rawY;
   private GestureDetector gesturedetector = null;
   public MapView(OWMapAtAndroid ctx)
   {
      super(ctx);
      ...
      gesturedetector = new GestureDetector(this);
   }
   public boolean onTouchEvent(MotionEvent event) 
   {
      return gesturedetector.onTouchEvent(event);
   }   
   public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY) 
   {
      drawXOffs+=distanceX;
      drawYOffs+=distanceY;
      return false;
   }
	
			Alles anzeigen
	Dummerweise wird onScroll() jedoch niemals aufgerufen, egal was ich auf dem Touch mache.
Alternativ habe ich dann versucht, die Scrolldistanz selber zu ermitteln:
Code
		
					
			public void onShowPress(MotionEvent e) 
   {
      float x,y;
      x=e.getRawX();
      y=e.getRawY();
      drawXOffs+=rawX-x;
      drawYOffs+=rawY-y;
      rawX=x;
      rawY=y;
      this.invalidate();
   }
   public boolean onDown(MotionEvent e) 
   {
      rawX=e.getRawX();
      rawY=e.getRawY();
      return false;
   }
	
			Alles anzeigen
	Diese Methoden werden aufgerufen, allerdings liefern getRawX/Y() immer die gleichen Koordinaten zurück - und lassen sich also nicht verwenden.
Mein View ist Child eines FrameLayout. Was mache ich falsch?