2010-06-23 3 views
3

Я использую андроид-галерею есть ли какой-либо прослушиватель или способ, которым я могу знать, которые срабатывают, когда пользователь начинает движение, останавливает движение, замедляется или перемещается?android gallery gallery Начало движения или замедление и прекращение движения

я вижу, что вы можете overide следующего метода

@Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     return super.onFling(e1, e2, velocityX, velocityY); 
    } 

но как я знаю, если скроллинг собирается остановить или начать?

ответ

0

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

private float modifiedVelocityX; 

private void init() { 
    Display display = ((WindowManager) getContext().getSystemService(
      Context.WINDOW_SERVICE)).getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 
Log.i(TAG, "Width = " + display.getWidth() + " Height = " + display.getHeight()); 
modifiedVelocityX = (float) (width * 1.0); //*** 1.0 = Velocity Factor. 
    } 

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
     float velocityY) { 
     float mod = velocityX < 0 ? -modifiedVelocityX : modifiedVelocityX; 
if (getSelectedItemPosition() == 1 || getSelectedItemPosition() == getAdapter().getCount() - 2) { 
      mod = velocityX < 0 ? -1 : 1; 
     } 

Log.i(TAG, "Original Velocity X was " + velocityX + " now my Modified Velocity is " + mod); 
    return super.onFling(e1, e2, mod, velocityY); 
} 
+0

Я хочу знать, если пользователь начнет прокрутку один раз после того, сколько времени он остановится, я хочу запустить действие, когда прокрутка будет остановлена. –