您的位置:首页 > 移动开发 > Android开发

Android开发中实现多点触摸的方法

2012-05-28 16:04 232 查看
  相关函数:

event.getAction() //获取触控动作比如ACTION_DOWN

event.getPointerCount(); //获取触控点的数量,比如2则可能是两个手指同时按压屏幕

event.getPointerId(nID); //对于每个触控的点的细节,我们可以通过一个循环执行getPointerId方法获取索引

event.getX(nID); //获取第nID个触控点的x位置

event.getY(nID); //获取第nID个点触控的y位置

event.getPressure(nID); //LCD可以感应出用户的手指压力,当然具体的级别由驱动和物理硬件决定的

event.getDownTime() //按下开始时间

event.getEventTime() // 事件结束时间

event.getEventTime()-event.getDownTime()); //总共按下时花费时间

/*****************************************************************************************************/

     @Override  

        public boolean onTouchEvent(MotionEvent event) {  

            // 获得屏幕触点数量  //TOUCHPOINTS = 10;

            int pointerCount = event.getPointerCount();  

            if (pointerCount > MAX_TOUCHPOINTS) {  

                pointerCount = MAX_TOUCHPOINTS;  

            }  

            // 锁定Canvas,开始进行相应的界面处理  

            Canvas c = getHolder().lockCanvas();  

            if (c != null) {  

                c.drawColor(Color.BLACK);  

                if (event.getAction() == MotionEvent.ACTION_UP) {  

                    // 当手离开屏幕时,清屏  

                } else {  

                    // 先在屏幕上画一个十字,然后画一个圆  

                    for (int i = 0; i < pointerCount; i++) {  

                        // 获取一个触点的坐标,然后开始绘制  

                        int id = event.getPointerId(i);  

                        int x = (int) event.getX(i);  

                        int y = (int) event.getY(i);  

                        ....

                    }  

                }  

                // 画完后,unlock  

                getHolder().unlockCanvasAndPost(c);  

            }  

            return true;

        }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android action null c up