今天是尝试开始Android版2048小游戏的第二天,在今天,我主要学习了如何获取用户在屏幕滑动的手势,以及对布局进行了一些小小的完善。
获取用户操作的手势(比如向左滑,向右滑等)主要用到了GestureDetector,这个类可以帮助我们获取一些常见的用户对屏幕的操作,例如单击、双击、按压、拖动等。具体的使用说明,大家可以查API也可以去百度,或者看我之前有一篇使用GestureDetector实现的小例子(http://blog.csdn.net/xiapinnong/article/details/21970419)在这里就不多说了。
下面还是看代码吧,相对与第一篇,我在代码中主要加入一个内部类MygestureDetector,并且让这个类实现了OnTouchListener和OnGestureListener这两个接口。
其中OnTouchListener这个接口主要用来为我的GridLayout绑定对touch这个动作的监听,然后将具体的动作传递到GestureDetector,通过将用户具体的操作对应到不同的手势上。
public class MygestureDetector implements OnGestureListener,OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return gd.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// 参数解释:
// e1:第1个ACTION_DOWN MotionEvent
// e2:最后一个ACTION_MOVE MotionEvent
// velocityX:X轴上的移动速度,像素/秒
// velocityY:Y轴上的移动速度,像素/秒
// 触发条件 :
// X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MI