思路:添加左右划屏幕判断,得到判断后模拟加减按键按下。
模拟按键按下用 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"
实现参考: