在安卓应用开发的时候涉及到点击或者滑动事件的处理,比如在视频播放,点击屏幕,视频暂停播放,并且滑出菜单栏,左右上下滑动的处理:
1.在Activity里面写onTouchEvent(MotionEvent event)接受触摸事件;
2.当event.getAction() == MotionEvent.ACTION_DOWN的时候计算当前位置;
3.当event.getAction() == MotionEvent.ACTION_UP的时候计算当前的x,y值,如果x,y未变化,就只是普通的点击事件,如果x,y有变化,x变化说明做了左右滑动的操作,y有变化说明做了上下滑动的操作;
4.如果对某个控件设置触摸事件,就直接 mVideo_playing_status.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
}
return false;
}
});
5.滑动的代码:
private float x1 = 0;
private float x2 = 0;
private float y1 = 0;
private float y2 = 0;
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
x1 = event.getX();
y1 = event.getY();
}
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_UP) {
x2 = event.getX();
y2 = event.getY();
if(Math.abs(x1-x2)<=5 && Math.abs(y2-y1)<=5){
Log.d(TAG, "onTouchEvent MotionEvent.ACTION_DOWN");
//变化很小,当着是点击事件,在这做点击事件处理
}else if(x1<100&&x2-x1>50){
//右滑,当距离大于50的时候做右滑
Log.d(TAG, "onGestureListener KEYCODE_MENU");
}else if(y2-y1>50){
//上滑
}else if(y1-y2>50){
//下滑
}
}
return false;
}