在初始化方法initGameView()中setOnTouchListener()来监听触摸事件,并为上下左右触摸事件添加方法swipeUp(),swipeDown(),swipeLeft(),swipeRight();
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
offsetX = event.getX() - startX;
offsetY = event.getY() - startY;
if(Math.abs(offsetX)>Math.abs(offsetY)) {
if(offsetX<-5){
swipeLeft();
}else if(offsetX>5){
swipeRight();
}
}else{
if(offsetY<-5){
swipeUp();
}else if(offsetY>5){
swipeDown();
}
}
break;
}
在自定义的类里面必须要包括一个构造函数 XXX(Context context,AttributeSet attr){super(context,attr);}
在XML中使用 package.class 来调用,如报名为com.test 类为HelloWorld 则在XML中
layout_main.xml中 。
<com.mark.game.my2048.GameView
android:id="@+id/gameView"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
其中 android:layout_ android:layout_weight="1"用来表示 用来分配剩余空间。1表示权重