在Android中使用多点触控的OnTouch

时间:2012-12-31 21:41:41

标签: android ontouchlistener

我很难计算屏幕每个“半边”的触摸次数。 当我触摸上侧时它正确计数,而下侧则相同。但是,当我触摸上侧时,不要释放它,然后触摸下侧,然后它计算错误的一面,我的实施中出了什么问题?

     myView.setOnTouchListener(new OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                int action = event.getAction() & MotionEvent.ACTION_MASK;
                if (action == MotionEvent.ACTION_DOWN) {
                    if(event.getY()<400)
                    {


                    }
                    else
                    {

                    }
                }

                if (action == MotionEvent.ACTION_UP) {

                    if(event.getY()<400)
                    {

                        zenbat=zenbat+1;
                        tv.setText(String.valueOf(zenbat));

                    }
                    if(event.getY()>400)
                    {
                        zenbat1=zenbat1+1;
                        tv1.setText(String.valueOf(zenbat1));

                    }
                }

                if (action == MotionEvent.ACTION_POINTER_DOWN) {
                    if(event.getY()<400)
                    {                           
                    }
                    else
                    {
                    }
                }

                if (action == MotionEvent.ACTION_POINTER_UP) {
                    if(event.getY()<400)
                    {
                        zenbat=zenbat+1;
                        tv.setText(String.valueOf(zenbat));

                    }
                    if(event.getY()>400)
                    {
                        zenbat1=zenbat1+1;
                        tv1.setText(String.valueOf(zenbat1));

                    }
                } 
                return true;
            }
        });

1 个答案:

答案 0 :(得分:1)

如果要正确处理多点触控事件,则需要使用指针索引正确识别产生事件的手指。

我在Android multi-touch interference回答了一个类似的问题,在那里我发布了一个代码示例,如何做到这一点。

要正确识别手指,您应参阅已发布代码中的fingerId

问候。