android 添加左右滑屏手势


今天要在自己的项目中添加左右滑动,实现日期的加减(原来已经做了加减按键)。滑动在一个中间的layout中进行


思路:添加左右划屏幕判断,得到判断后模拟加减按键按下。

模拟按键按下用 mbotton.performClick(); 方法

划屏幕方法  使用 GestureDetector 手势监测类。


实现:


实现接口:OnTouchListener, OnGestureListener


创建:private GestureDetector mGestureDetector; 

实例化:new GestureDetector(this, this); //第一个this 是指该activity 的context  第二个this 是本地实现了OnGestureListener listener 的接口

重写接口:自动添加以下的几个函数,只要重写其中的

public boolean onTouch(View v, MotionEvent event)

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



	
	@Override
	public boolean onTouch(View v, MotionEvent event) {
		// TODO Auto-generated method stub
		Log.d("22", "onTouch");
		return mGestureDetector.onTouchEvent(event); //获取触摸时间到手势操作类
		//return false;
	}
	
	@Override
	public boolean onDown(MotionEvent arg0) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		// TODO Auto-generated method stub
		final int FLING_MIN_DISTANCE = 50;   
	    final int FLING_MIN_VELOCITY = 0; 
	    
		if (e1.getX()-e2.getX() > FLING_MIN_DISTANCE    
                && Math.abs(velocityX) > FLING_MIN_VELOCITY) {    
            // Fling left    
            //Toast.makeText(this, "向左手势", Toast.LENGTH_SHORT).show(); 
			try {
				mDateStateBar.btn_before.performClick();//模拟按键
			} catch (Exception e) {
				// TODO: handle exception
			}
			
        } else if (e2.getX()-e1.getX() > FLING_MIN_DISTANCE    
                && Math.abs(velocityX) > FLING_MIN_VELOCITY) {    
            // Fling right    
            //Toast.makeText(this, "向右手势", Toast.LENGTH_SHORT).show(); 
        	try {
				mDateStateBar.btn_next.performClick();//模拟按键
			} catch (Exception e) {
				// TODO: handle exception
			}
        	
        }    
        return false;    
		
		
	}

	@Override
	public void onLongPress(MotionEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
			float arg3) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public void onShowPress(MotionEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean onSingleTapUp(MotionEvent arg0) {
		// TODO Auto-generated method stub
		return false;
	}	
   


note: 在中间的layout中滑动所以  要打开该布局的 android:longClickable="true" 

实现参考:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值