我正在使用android画廊是否有任何听众或方式我可以知道当用户开始动作,停止动作,减速或移动时会被触发?
我发现你可以覆盖以下方法
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return super.onFling(e1, e2, velocityX, velocityY);
}
但我如何知道滚动是停止还是开始?
答案 0 :(得分: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);
}