两次都是画曲线统计图用到手势滑动。左滑动,右滑动曲线图翻页
2、直接上代码
/**
* 简化
* /
public class BalanceHistoryActivity extends BaseFragmentActivity_ implements OnClickListener,
OnGestureListener {
private GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_balance_history_data);
//手势就靠这个了
mGestureDetector = new GestureDetector(this, this);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
//手势传递
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
LogUtil.d(TAG, "-----------onDown-------------");
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
final int FLING_MIN_DISTANCE = 50;
final int FLING_MIN_VELOCITY = 0;
LogUtil.d(TAG, "-----------手势滑动-------------");
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Fling left
LogUtil.d(TAG, "-----------向左-------------");
try {
// mDateStateBar.btn_before.performClick();// 模拟按键
dateBarView.getNextImageView().performClick();
} catch (Exception e) {
// TODO: handle exception
}
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Fling right
LogUtil.d(TAG, "-----------向右-------------");
try {
// mDateStateBar.btn_next.performClick();// 模拟按键
dateBarView.getUpImageView().performClick();
} catch (Exception e) {
// TODO: handle exception
}
}
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
LogUtil.d(TAG, "-----------onLongPress-------------");
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
3、注:
第一次使用的时候是implement了
OnTouchListener 接口,是在画图布局上layout_achart上左右滑动
mlayout.setOnTouchListener(this);
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.d("22", "onTouch");
return mGestureDetector.onTouchEvent(event); //获取触摸时间到手势操作类
//return false;
}
第二次使用的时候是,多了视图的空白显示,覆盖掉了mlayout,所以死划,划来划去没效果。
用的是直接的onTouchEvent,还是有一定区别,滑动区域不同。查找代码查找了很久也
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}