Android--Gallery实现切一屏
那么如何实现单屏切换呢,其实很简单,写一个自定义的Gallery类,该类继承自Gallery,然后重写Gallery的OnFling()方法,让其直接return false,具体如下:
@Override
 public
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
  //
TODO Auto-generated method stub
//  return super.onFling(e1, e2, velocityX/1.5f,
velocityY);
  return
false;
 }
但是OnFling() return flase之后发觉确实达到一次切换一屏的效果,但是灵敏度有点低,需要滑动很长的距离才能切换,所以可以继续重写其onScroll方法,讲其水平位移参数distanceX调整一下即可,具体如下
 @Override
 public boolean onScroll(MotionEvent e1,
MotionEvent e2, float distanceX, float distanceY) {
  // TODO
Auto-generated method stub
  return
super.onScroll(e1, e2, distanceX*3,
distanceY);
 }
上边是直接让速度不起作用,要是又想有速度 又想只切换一张,也就是短距离的滑动呢看下边
 // 实现短距离滑动
 @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;
     }
     onKeyDown(kEvent, null);
     return true;
 }
 private boolean
isScrollingLeft(MotionEvent e1, MotionEvent e2) {
     return e2.getX() > e1.getX();
 }
                    
                
                
            
        
浙公网安备 33010602011771号