2015-05-04 74 views
0

我正在開發一個Android應用程序,將在平板電腦屏幕上得到多個接觸。獲取觸摸點與最大的區域被觸摸 - Android

我想知道是否有可能得到最大的區域。例如,如果您用整隻手觸摸屏幕,則面積最大的觸摸點就是拇指。

是否有任何API或函數返回此?

任何幫助表示讚賞!

謝謝!

回答

0

通過重寫活動中的onTouchEvent監聽器,您可以直接使用觸摸數據。該數據存儲在包含指針大小數據的MotionEvent對象中。在您的聽衆功能中,您可以獲取所有觸摸點並循環播放。例如,下面的代碼應該通過他們得到的觸摸點的數量,循環,並存儲指針指數面積最大:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    int largestIndex, largestSize=0; //holds largest point data 
    for(int i=0; i<event.getPointerCount(); i++){ //loop through each touch point 
     if(event.getSize(i) > largestSize){ //if this size is greater than the previous largest one 
      //store the new size and pointer index 
      largestSize = event.getSize(i); 
      largestIndex = i; 
     } 
    } 


    //work with the largest touch point here 

    //you can change this to return true if you're always handling the touchevent completly yourself 
    return super.onTouchEvent(event); 
} 

我沒有測試此代碼,但基於對API參考MotionEvents這應該做你想做的。如果您有興趣,還有更多關於使用多點觸摸事件的信息here