2017-02-22 49 views
1

有沒有一種方法可以將偵聽器添加到佈局或視圖中,並且隨着用戶觸摸屏幕它將添加計數。喜歡的東西我如何找到我的android設備支持的最大觸摸次數

tvTouchCount.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      int count = 0; 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        count = count + 1; 
        if (count > maxCount) 
         maxCount = count; 
        tvTouchCount.setText("Max Count=" + maxCount); 
        return false; 
       case MotionEvent.ACTION_UP: 
        count = count - 1; 
        return false; 
       default: 
        return false; 
      } 
     } 
    }); 

我已經試過正從包管理器的詳細信息,但只有當它支持2個告訴我,2-5,和5+獨立沾上,而不是確切的數字

+0

是OnTouchListener可以應用到的任何視圖 –

+0

可能的複製[如何使用View.OnTouchListener代替的onClick](http://stackoverflow.com/questions/11690504/how-to-use-view- ontouchlistener-instead-on-onclick) –

+0

我的問題不是如何使用ontouch監聽器,而是獲取設備上支持的最大獨立觸摸的確切數量。 – callMeRoka

回答

0

你可以從運動事件中獲取指針數量。

new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int pointersCount = event.getPointerCount() 
    } 
} 

關於可用觸摸的最大數量,可以通過PackageManager進行檢查。

PackageManager packageManager = context.getPackageManager() 
if (packageManager.hasSystemFeature(FEATURE_TOUCHSCREEN_MULTITOUCH)) { 
    //The device's supports basic two-finger gesture detection. 
} 

if (packageManager.hasSystemFeature(FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT)) { 
    //The device's capable of tracking two or more fingers fully independently. 
} 

if (packageManager.hasSystemFeature(FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) { 
    //The device's is capable of tracking a full hand of fingers fully independently. 
    //that is, 5 or more simultaneous independent pointers. 
} 
相關問題