Android:多点触控问题

时间:2012-01-05 07:02:21

标签: android multi-touch

以下是我的问题:

- 我按下屏幕。我可以使用MotionEvent类的ACTION_DOWN变量跟踪此触摸事件。当我将这个初始手指按在屏幕上时,我的问题出现了。我希望能够在屏幕上跟踪任何其他触摸事件。

我认为我的问题基本上是,即使正在进行,我如何跟踪后续触摸事件呢?

最佳, Aneem

编辑:

public boolean onTouchEvent(final MotionEvent ev) {

    if(ev.getAction()==ev.ACTION_DOWN||ev.getActionMasked()==ev.ACTION_POINTER_DOWN){                   
        AudioManager mgr = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
        int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
        PointF[] touchPoints = new PointF[ev.getPointerCount()];
        for(int i = 0; i < ev.getPointerCount(); i++){
            touchPoints[i] = new PointF(ev.getX(i),ev.getY(i));
        }
        for(final PointF point : touchPoints){
            x = ev.getX(ev.getActionIndex());
            y = ev.getY(ev.getActionIndex());
            int ptx = (int) (x - x%widthIncrement);
            int pty = (int) (y - y%heightIncrement);
            playSound(pointMap.get(new Point(ptx,pty)));
        }
        return true;
    }
    return true;
}

2 个答案:

答案 0 :(得分:2)

好吧,你可以确定一个非主指针(可能是另一个手指)是否以相同的方式向下移动,除了不是寻找ACTION_DOWN,寻找ACTION_POINTER_DOWN

答案 1 :(得分:0)

需要注意的事项是:许多Android手机都会因多点触控而被窃听。

谷歌针对Android多点触控问题并观看视频。

基本上,如果您按住一根手指,然后移动另一根手指,当第二根手指靠近x或y接近第一根手指时,即使手指没有移动,第一根手指也会移动

这是一个完整的PITA ...只是想你可能想知道......

GAJ