Gallery实现每次只滚动一张图片
2013-09-27 16:31
411 查看
在工程中用到了Gallery,所以就对Gallery做了一些相应的调查和测试。结论是想要实现Gallery每次之滚动一次有两种方法:
方法一: 重写Gallery 的onFling方法,只需要return false即可。
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
虽然这个方法比较简单,但是我测试时感觉需要手指滑动很远才能翻页,感觉灵敏度不够高。没有关系我们还可以调整灵敏度。需要重写Gallery的onScroll方法。建议FLINE_SENSITIVITY设置成1.5,因为设置太大,滑动较长的距离仍然会翻滚多个页面。
private static final float FLINE_SENSITIVITY = 1.5f;
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
float f = FLINE_SENSITIVITY * distanceX;
super.onScroll(e1, e2, f, distanceY);
}
方法二:还是重写onFling方法,不过要在方法里面实现一次点击左右按键的操作。这个方法比较稳妥,也很流畅,用户体验也很好,但是滑动的时候会有按键音。
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int kEvent;
if (isScrollingLeft(e1, e2)) {
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
} else {
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
方法一: 重写Gallery 的onFling方法,只需要return false即可。
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
虽然这个方法比较简单,但是我测试时感觉需要手指滑动很远才能翻页,感觉灵敏度不够高。没有关系我们还可以调整灵敏度。需要重写Gallery的onScroll方法。建议FLINE_SENSITIVITY设置成1.5,因为设置太大,滑动较长的距离仍然会翻滚多个页面。
private static final float FLINE_SENSITIVITY = 1.5f;
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
float f = FLINE_SENSITIVITY * distanceX;
super.onScroll(e1, e2, f, distanceY);
}
方法二:还是重写onFling方法,不过要在方法里面实现一次点击左右按键的操作。这个方法比较稳妥,也很流畅,用户体验也很好,但是滑动的时候会有按键音。
private boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
return e2.getX() > e1.getX();
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int kEvent;
if (isScrollingLeft(e1, e2)) {
kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
} else {
kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
}
onKeyDown(kEvent, null);
return true;
}
相关文章推荐
- jquery实现div内图片水平左右滚动,滚动到最后一张停止、可根据需求调整图片数量及大小
- android自定义Gallery实现手动和自动循环滚动切换图片
- js实现朝一个方向不间断的图片滚动,这是不能实现的(即最后一张图片跑完后紧接着进行第一张图片)
- android Gallery做图片滚动,每次滑动翻一页
- android Gallery做图片滚动,每次滑动翻一页
- 一张图片实现滚动
- VC++实现一张图片循环滚动
- jquery 实现滚动向上滚动图片上一张停顿一下在上一张效果
- android开发之gallery 实现滚动一张且短距离滑动实现滚动
- jcarousellite jQuery实现滚动的图片
- Swiper实现图片滚动效果
- Android遍历某个文件夹的图片并实现滑动查看的的Gallery
- JS实现图片无缝滚动
- android Gallery实现异步加载图片
- JS实现div内部的文字或图片自动循环滚动
- COCOS2D-X 实现图片区域内滚动
- js实现图片上传预览(一张一张上传)
- 多图片实现上一张,下一张按钮功能DEMO
- RecycleView实现的Gallery画廊效果(图片制作成圆角)
- <marquee>实现链接/图片的滚动