您的位置:首页 > 其它

重写Gallery控件,控制滑动速度

2013-11-29 10:44 253 查看
用自带的Gallery时滑动速度太快,有时滑动一次就越过了好几张图片,所以重写解决此问题。

public class MyGallery extends Gallery {

public MyGallery(Context context) {
this(context, null);
// TODO Auto-generated constructor stub
}

public MyGallery(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

@SuppressWarnings("deprecation")
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float 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;
}
return onKeyDown(kEvent, null);
}

private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
return e2.getX() > e1.getX();
}

}
也用onKeyDown方法可实现手动滑动效果,例如使用Button的点击时间调用

gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_LEFT, new KeyEvent(0, 0))

则画册左移,反之右移。

gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, new KeyEvent(0, 0))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: