我想在我的活動中處理一個手勢。要做到這一點,我已經在我的Activity上覆蓋了公共布爾onTouchEvent(MotionEvent MEvent)方法。內容是這樣的:Android - 如何區分第一個指針和第二個指針在onTouchEvent中移動
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_UP)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_MOVE)
{
...
return true;
}
motionaction = MEvent.getActionMasked();
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
...
return true;
}
if(motionaction == MotionEvent.ACTION_POINTER_UP)
{
...
return true;
}
return true;
手勢它的如下:
-finger1按住屏幕上的位置(實際上,因爲總是有一點動靜)
-finger2上移屏幕。這是我想抓住的運動。
我可以抓住5個動作,但問題是當兩個手指在屏幕上時,ACTION_MOVE抓住第一和第二手指的移動。方法MEvent.getActionIndex()不適用於始終返回0的ACTION_MOVE;我唯一能做的就是保存finger1的位置,並放棄接近那個點的運動。結果它並不完美,在某些時候,手指2的移動使它受到小指的移動「污染」,因爲儘管手指握住它在屏幕上的位置,聽衆感覺到每一個最小的移動。
我該如何改進?