如何使图库控件一次滚动一个图像?另外,使这些图像连续循环的好方法是什么?我尝试覆盖onFling,根本不起作用.
这会将图像移动一定距离,但实际上并没有实现“真正的分页”.
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// return super.onFling(e1, e2, velocityX, velocityY);
int kEvent;
if(isScrollingLeft(e1, e2)){ //Check if scrolling left
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
}
else{ //Otherwise scrolling right
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2){
return e2.getX() > e1.getX();
}
解决方法:
我创建了一个名为CustomGallery的新控件,并从Gallery对其进行了扩展.在自定义库中,我放置了以下内容:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return super.onFling(e1, e2, 0, velocityY);
}
在我的活动中,我使用CustomGallery而不是Gallery.这可行.一件事,我们从2.2迁移到2.3(姜饼).在尝试覆盖onFling之前,它对我不起作用.因此,我怀疑这也与OS版本有关.