在大家设置完事件处理之后,自己去测试时候发现点击没有任何效果。
是你没有设置当前要操作的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;
}
}
分享到:
相关推荐
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->...
模仿qq炫舞游戏做出的单机版游戏 package cn.itcast.game; import java.io.InputStream; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content...
2. onDoubleTapEvent(MotionEvent e):通知DoubleTap手势中的事件,包含down、up和move事件(这里指的是在双击之间发生的事件,例如在同一个地方双击会产生DoubleTap手势,而在DoubleTap手势里面还会发生down和up...
2. onDoubleTapEvent(MotionEvent e):通知DoubleTap手势中的事件,包含down、up和move事件(这里指的是在双击之间发生的事件,例如在同一个地方双击会产生DoubleTap手势,而在DoubleTap手势里面还会发生down和up...
当我们说到“手势剩余部分”时指的是手势后续的MOVE事件和最后的UP或CANCEL事件。 在这里我也不考虑多点触摸手势(我们只假设用一个手指)并且忽略多个MOVE事件可以被归为一组这一实际情况。最后,我们假设文中的...
我们也许会遇到,自定义控件的触屏事件处理,先来了解一下View类中的,onTouch事件和onTouchEvent事件。 1、boolean onTouch(View v, MotionVent event) 触摸事件发送到视图时调用(v:视图,event:触摸事件) 返回...
现在的智能手机不敢说百分百的都是触摸屏,也应该是百分之九九以上为触摸屏了,触摸屏为我们操作无键盘、无鼠标的手机系统带来了很多的便利。当用户触摸屏幕时会产生很多的触摸事件,down、up、move等等。View类有个...
由于触摸(Touch)而触发的事件 Android的事件:onClick, onScroll,onFling等等,...一个Action_DOWN, n个ACTION_MOVE, 1个ACTION_UP,就构成了Android中众多的事件。 对于ViewGroup类的控件,有一个很重要的方法,就是
如果该方法返回true ,表示该事件已经被View处理,不再向上层的View或Activity传递 ; 如果返回false, 表示事件未处理,继续传递。 具体代码如下: package com.ninegrid; import android.content.Context; import ...
重点函数是onTouchEvent(),所有的触摸事件都会在View的这个函数里面处理 单点触控 单点触控的event是通过event.getAction()获得的,一般最少需要考虑下面这三种情况 MotionEvent.ACTION_DOWN: 手指 初次接触到屏幕...
* 创建VelocityTracker对象,并将触摸content界面的滑动事件加入到VelocityTracker当中。 * * @param event * content界面的滑动事件 */ private void createVelocityTracker(MotionEvent event) { if...
//触摸屏幕时,按下去时的X轴上位置 private float initialY; //Y private float centerX; //画圆时圆心点X轴位置 private float centerY; //Y轴位置 private float circleRadius = 1; //半径 aaaaaa ...