view实现手势滑动

监听一个view向左还是向右的滑动主要用到GestureDetector;

@Layout(R.layout.right_fragment_menu)
public class RightFragment extends BaseFragment {
	@BindView(id=R.id.linout_right,canClick=true)
	private LinearLayout linout_right; 
	private GestureDetector mGestureDetector;
	private SlidingMenu _SlidingMenu;
	
	public RightFragment(SlidingMenu _SlidingMenu){
		this._SlidingMenu=_SlidingMenu;
	}
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
		//findView();
	}
	
	private void findView(){
		mGestureDetector = new GestureDetector(getActivity(), new MyOnGestureListener());
	 linout_right.setOnTouchListener(new OnTouchListener() {
			
		@Override
		public boolean onTouch(View arg0, MotionEvent event) {
			 //Log.i(getClass().getName(), "onTouch-----" + getActionName(event.getAction()));
			mGestureDetector.onTouchEvent(event);
	        // 一定要返回true,不然获取不到完整的事件
	        return true;
		}
	});}
	@Override
	protected void onClick(View v) {
		
	}

    class MyOnGestureListener extends SimpleOnGestureListener {
        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            return false;
        }

        @Override
        public void onLongPress(MotionEvent e) {
        }

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            return false;
        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

            float moveX = e1.getX() - e2.getX();

            // 左滑
            if (moveX > 150 && moveX < 5000) {
              // mDesignClothesBackground
              // .setBackgroundResource(idClothesBackground[0]);
            	System.out.println("向左滑动");
            }
            // 右滑
            else if (moveX < -150 && moveX > -5000) {
              // mDesignClothesBackground
              // .setBackgroundResource(idClothesBackground[1]);
            	System.out.println("向右滑动");
            	if(_SlidingMenu!=null){
            		_SlidingMenu.showContent();
            	}
            }
            return false;
        }

        @Override
        public void onShowPress(MotionEvent e) {
        }

        @Override
        public boolean onDown(MotionEvent e) {
            return false;
        }

        @Override
        public boolean onDoubleTap(MotionEvent e) {
            return false;
        }

        @Override
        public boolean onDoubleTapEvent(MotionEvent e) {
            return false;
        }

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            return false;
        }
    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值