在我的应用程序中,我有一个GLSurfaceView,我使用OpenGL ES绘制内容。现在我希望用户能够触摸此GLSurfaceview。此外,一旦用户将他的手指放在视图上,我想要检测触摸事件的y轴上的当前位置。我使用以下代码:
mGLSurfaceView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.d(TAG,motionEvent.getY()+"");
return false;
}
});
这很好用,但我真正想要的是当用户在Surface上上下滑动时我也得到y位置值。使用上面的代码,onTouch()
回调仅在用户触摸表面时被调用一次。
是否有另一个我可以使用的听众,我想念它?
最后,我想在我的GLSurfaceView上实现一些滚动/缩放功能。
TY
答案 0 :(得分:0)
好的,我自己想出来了。
不仅在用户按下视图时调用Callback。
但是,必须过滤掉#34;来自动作事件的MOVE
动作。
所以这是工作代码:
mSurfaceView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_MOVE)
Log.d(TAG,"Y:Postion: " + motionEvent.getY());
return true;
}
});