Android游戏开发学习(6)--处理VIew触屏MOVE和UP事件
程序员文章站
2022-04-02 15:58:40
...
在大家设置完事件处理之后,自己去测试时候发现点击没有任何效果。
是你没有设置当前要操作的VIew没有获得焦点,所以要在你的构造函数中加入
setFocusable(true);
如果你这是处理的是触屏事件,你又会发现你自己实现的这个View只支持DOWN按下事件,不知道拖动和UP事件,
需要在VIew的构造函数中加入支持MOVE和UP事件
setClickable(true);
也可以在onTouchEvent中返回 return true;
默认要实现的
@Override public boolean onTouchEvent(MotionEvent event) { Log.i("触屏事件", "事件:"+event.getAction()); return super.onTouchEvent(event); }
解决办法一
public class GameSurfaceView extends SurfaceView implements Runnable ,SurfaceHolder.Callback{ public GameSurfaceView(Context context) { super(context); setFocusable(true); //设置可以处理按下以后的事件 setClickable(true); } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } }
解决办法二
public class GameSurfaceView extends SurfaceView implements Runnable ,SurfaceHolder.Callback{ public GameSurfaceView(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent event) { return true; } }