2011-09-22 21 views
2

的區域(點的集合)是否有Android的辦法讓我的手指的區域(點的集合),當我觸摸屏幕。通常,回報是一個地點。我需要得到幾個可以代表我感動的區域的點。有誰知道? Thnaks是否有Android的辦法讓我的手指

回答

0

只需使用視圖類的的onTouchEvent()或實現OnTouchListener您的活動,並得到X和Y座標一樣,

這是View類的的onTouchEvent()..

@Override 
public boolean onTouchEvent(MotionEvent ev) { 

    final int action = ev.getAction(); 
    switch (action & MotionEvent.ACTION_MASK) { 


    case MotionEvent.ACTION_DOWN: { 
    float x = ev.getX(); 
    float y = ev.getY(); 

    break; 
    } 

    case MotionEvent.ACTION_MOVE: { 

    float mLastTouchX = x; 
    float mLastTouchY = y; 

    break; 
} 

    case MotionEvent.ACTION_UP: { 
    break; 
    } 

    case MotionEvent.ACTION_CANCEL: { 
    break; 
    } 

    case MotionEvent.ACTION_POINTER_UP: { 

    break; 
    } 
    } 

return true; 
} 

編輯:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
final TextView textView = (TextView)findViewById(R.id.textView); 
// this is the view on which you will listen for touch events 
final View touchView = findViewById(R.id.touchView); 
touchView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     textView.setText("Touch coordinates : " + 
      String.valueOf(event.getX()) + "x" + String.valueOf(event.getY())); 
      return true; 
    } 
}); 
} 

欲瞭解更多詳情Android - View

+0

我需要一次獲得積分,當我觸及下去時,沒有移動動作 – user958274

+0

只需要從這裏取一點大小寫MotionEvent.ACTION_DOWN:{0} {0} {0} {0} float x = ev.getX(); float y = ev.getY(); break; } 評論其他東西或刪除它。 – user370305

0

是否必須是手指的真實形狀?否則,您可以計算觸摸中心周圍的一個圓圈。

+0

是的,我需要真正的形狀 – user958274

0

遺憾的是沒有。我前段時間碰到過這種情況 - 您可以嘗試通過幾個「幀」對數據進行規範化處理。可能值得嘗試弄清楚爲什麼你需要一個確切的點或一組點,並找到另一種方法。

+0

你是什麼意思了serveral的「框架」數據標準化 – user958274

+0

得到過去幾幀的位置,並找到平均位置 - 這樣你可以嘗試制定出中央和預測的區域通過使用'MotionEvent'的'getPressure()'方法 – Martyn

相關問題