2012-01-05 131 views
2

下面是我的问题的场景:Android:多点触控问题

- 我按下了屏幕。我可以使用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

那么,你可以决定是否在非主指针(另一根手指可能)已经下降了相同的方式,除了代替寻找ACTION_DOWN ,请查找ACTION_POINTER_DOWN

0

需要注意的一点:很多Android手机都被多点触控窃听。

Google适用于Android多点触控问题并观看视频。

基本上,如果您按住一个手指,然后移动另一个手指,因为第二个手指在x或y上靠近第一个手指,则第一个手指坐标似乎会移动,即使手指不是移动。

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

GAJ