2017-02-22 44 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. 
} 
相关问题