2013-02-23 101 views
2

我想在我的首选项屏幕中添加手势,但我没有收到任何积极的结果,我的问题是我们可以添加手势来选择首选项屏幕,如果是,那么我如何使用下面的 代码中加入的手势优先(不工作的偏好,但其做两份活动之间切换)如何将手势添加到首选项屏幕

@Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // TODO Auto-generated method stub 

     return gestureDetector.onTouchEvent(event); 
    } 

    SimpleOnGestureListener simpleOnGestureListener 
    = new SimpleOnGestureListener(){ 


     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
       float velocityY) { 
      String swipe = ""; 
      float sensitvity = 50; 

      // TODO Auto-generated method stub 
      if((e1.getX() - e2.getX()) > sensitvity){ 
       // for left 
      Intent i=new Intent(getApplicationContext(),MyActivity.class); 
       startActivity(i); 
       finish(); 


      }else if((e2.getX() - e1.getX()) > sensitvity){ 
       //for right 
      }else{ 
       swipe += "\n"; 
      } 

      if((e1.getY() - e2.getY()) > sensitvity){ 
       //Swipe Up 
      }else if((e2.getY() - e1.getY()) > sensitvity){ 
       //Swipe Down 
      } 



      return super.onFling(e1, e2, velocityX, velocityY); 
     } 
    }; 

    GestureDetector gestureDetector 
    = new GestureDetector(simpleOnGestureListener); 

回答

0

先为您的MainActivity implements OnGestureListener然后定义手势

private GestureDetector gestureScanner; 

手势添加到您的onCreate gestureScanner = new GestureDetector(this); 这是手势的方法

@Override 
public boolean onTouchEvent(final MotionEvent event) 
{ 
    return gestureScanner.onTouchEvent(event); 
} 
public boolean onDown(final MotionEvent e) 
{ 

    return true; 
} 
public boolean onFling(final MotionEvent e1, final MotionEvent e2, 
     final float velocityX, final float velocityY) 
{ 
    return true; 
} 
public void onLongPress(final MotionEvent e) { 

} 
public boolean onScroll(final MotionEvent e1, final MotionEvent e2, 
     final float distanceX, final float distanceY) 
{ 
    return true; 
} 
public void onShowPress(final MotionEvent e) 
{ 

} 
public boolean onSingleTapUp(final MotionEvent e) 
{ 
    showHide(); // show hide the statusBar On Small Phones prefer to 
    // keep it on Single Tab Cuz On Swipe Down is Kind laggy!!! 
    // WTF !! :D 
    return true; 
} 

现在,你可以在我的onSingleTapUp(final MotionEvent e)我使用的显示隐藏状态栏看到。

你有六种不同的触摸事件方式“手势事件”选择其中一个,并把它的意图放在它上面,当用户“让我们说”滚动其他活动将启动。

​​

给它一个尝试,我希望它对你有好处。

+0

我得到了我的答案 – 2013-02-23 11:24:45

+0

http://misha.beshkin.lv/android-swipe-gesture-implementation/ – 2013-02-23 11:25:59

+0

高兴你没有... – k0sh 2013-02-23 11:26:54