android手势滑动方向监听

来源:互联网 发布:象过河软件怎么样 编辑:程序博客网 时间:2024/04/30 06:27

以前一直想写技术型博客,但是由于本人比较懒,老是光说不练,所以就一直拖啊拖的。最近公司比较闲,闲暇之余又萌生了写博客的念想。于是自己就写了个贪吃蛇的小游戏,其中方向控制用的就是手势滑动监听。so 就先写这篇文章吧。贪吃蛇UI实在是不忍直视。修修过段时间在发吧。废话不多说直接上源码。

package com.example.slipesdemo;


import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.Toast;


public class MainActivity extends Activity {
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return mDetector.onTouchEvent(event);
}


private GestureDetector mDetector;
private GestureDetector.OnGestureListener mGestureListener = new GestureDetector.SimpleOnGestureListener() {


@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
float x = e2.getX() - e1.getX();
float y = e2.getY() - e1.getY();
// 取 x,y的绝对值
float x_abs = Math.abs(x);
float y_abs = Math.abs(y);
if (x_abs >= y_abs) {
if (x > 0) {
// right
Toast.makeText(MainActivity.this, "right",
Toast.LENGTH_LONG).show();
} else if (x <= 0) {
// left
Toast.makeText(MainActivity.this, "left", Toast.LENGTH_LONG)
.show();
}
} else {
if (y > 0) {
// down
Toast.makeText(MainActivity.this, "down", Toast.LENGTH_LONG)
.show();
} else if (y <= 0) {
// up
Toast.makeText(MainActivity.this, "up", Toast.LENGTH_LONG)
.show();
}
}
return true;
}


};


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//调用监听
mDetector = new GestureDetector(mGestureListener);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


}

0 0
原创粉丝点击