Oengl es Android 双击屏幕效果实现

本文介绍如何在GLSurfaceView中处理触摸事件,并通过GestureDetector实现双击等手势操作。展示了如何通过MotionEvent获取触控笔位移并调整视图角度。

主要就是让你的View 实现onTouchListener。我这里设置GLSurfaceView 的一个对象名为mGLView.

红色加粗为关键性语句,是主要应用到的。而且GestureDetector不只是有onDoubleTap方法,还有以下这些方法可以实现。

 

mGLView.setOnTouchListener(new OnTouchListener(){
            
            private GestureDetector gestureDetector  = new  GestureDetector(MainActivity.this, new GestureDetector.SimpleOnGestureListener() {

                @Override
                public boolean onDoubleTap(MotionEvent e) {
                    // TODO Auto-generated method stub
                    Log.d("double", "double");
                    mGLView.mAngleX = 0;
                    mGLView.mAngleY = 0;
                    mGLView.setArray();
                    mGLView.requestRender();
                    return super.onDoubleTap(e);
                }
                
            });

            @Override
            public boolean onTouch(View v, MotionEvent e) {
                // TODO Auto-generated method stub
                gestureDetector.onTouchEvent(e);
                ypos = e.getY();  
                xpos = e.getX();
                 switch (e.getAction()) {  
                   // case MotionEvent.ACTION_DOWN:
                         
                       // return true;
                    
                    case MotionEvent.ACTION_MOVE:  
                        float dy = ypos - mPreviousY;//计算触控笔Y位移  
                        float dx = xpos - mPreviousX;//计算触控笔X位移  
                        Log.d("dx", "dx"+dx+dy);
                        mGLView.mAngleX = dy * TOUCH_SCALE_FACTOR;//设置沿x轴旋转角度  
                        mGLView.mAngleY = dx * TOUCH_SCALE_FACTOR;//设置沿y轴旋转角度  
                        mGLView.setArray();
                        mGLView.requestRender();//重绘画面
                        return true;
                    } 
                 mPreviousX = xpos;
                 mPreviousY = ypos;
                return true;
            }
            
        });

 

转载于:https://www.cnblogs.com/lws520/p/5997995.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值