获取GLSurfaceView上触摸事件的当前Y位置

时间:2014-11-26 08:53:33

标签: android ontouchlistener glsurfaceview touch-event

在我的应用程序中,我有一个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

1 个答案:

答案 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;
            }
        });