1
我重寫了我的SurfaceView的onTouchEvent()。每當我觸摸我的手機屏幕時,它應該打印觸摸事件的座標。這是我的代碼:爲什麼返回true onSurfaceView onTouchEvent()?
public class MyGestureActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate()");
panel = new MyGesturePanel(this);
setContentView(panel);
}
}
public class MyGesturePanel extends SurfaceView implements SurfaceHolder.Callback {
public boolean onTouchEvent(MotionEvent event) {
Log.i(TAG, "onTouchEvent! " + event.getX() + " " + event.getY());
return super.onTouchEvent(event);
}
}
如果我回到super.onTouchEvent(事件),只打印1個事件(ACTION_DOWN),即使我沒有鬆開我的手指在屏幕上。我也嘗試打印返回的內容,並返回false。
現在,我沒有使用super.onTouchEvent(event),而是返回true。當我將返回值設置爲true時,它的功能正常。當我將手指放在屏幕上時,它會打印大量的ACTION_MOVE事件。 (即使我不移動我的手指)
這是爲什麼?難道我做錯了什麼?將「硬編碼」迴歸爲真是可取的嗎?
謝謝!