2012-01-05 134 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