2017-02-22 7 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+ независимого Touchs, а не точное число

+0

Да OnTouchListener может быть применен к любой вид –

+0

Возможный дубликат [Как использовать View.OnTouchListener вместо OnClick] (http://stackoverflow.com/questions/11690504/how-to-use-view- ontouchlistener-in-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. 
}