OnGestureListener の onScroll イベントに問題があります。
メソッドのシグネチャは次のとおりです。
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY);
問題は、MotionEvent e1 が最初のスクロール後に常に同じに見えることです。たとえば、最初の srcolling で e1.getX() を実行すると、100 が返されます。その後、スクロールを停止し、画面の別の場所で 2 番目のスクロールを開始すると、100 が返されます。MotionEvent e2 のみが値を変更します。