2012-10-05 5 views
1

Je voudrais implémenter une méthode avec un SPenTouchListener de SPen SDK. L'auditeur fonctionne bien mais je voudrais capturer des données de toucher (coordonnées, etc.) toutes les 10ms dès le premier contact de l'utilisateur depuis que l'utilisateur appuie sur un autre bouton. Comment puis-je faire ceci? Thi fait partie du code de l'auditeur:Android Event Time Listener

public boolean onTouchPen(View view, MotionEvent event) { 
      updateTouchUI(event.getX(), event.getY(), event.getPressure(), event.getAction(), "Pen"); 
      } 

private void updateTouchUI(float x, float y, float pressure, int action, String tool){ 
    mX.setText("X : " + String.format("%.2f", x)); 
    mY.setText("Y : " + String.format("%.2f", y)); 
    mPressure.setText("Pressure : " + String.format("%.3f", pressure)); 
} 

En d'autres termes, je veux appeler le updateTouchUI toutes les 10ms pour la presse depuis l'utilisateur un bouton dans l'activité. Aussi, je veux capturer l'horodatage à chaque fois.

Répondre

2

Vous pouvez créer un Handler

private Handler mHandler = new Handler(); 
public void updateUI() { 
     mHandler.postDelayed(mUpdateTimeTask, 10); //10ms 
    } 

    /** 
    * Background Runnable thread 
    * */ 
    private Runnable mUpdateTimeTask = new Runnable() { 
      public void run() { 
     updateTouchUI (param...); //Your function 

       // Running this thread after 10 milliseconds 
       mHandler.postDelayed(this, 10); 
      } 
    }; 

Et ajouter updateUI() dans onClickEvent de votre désir Button

+0

-vous obtenir de nouveaux lit la position de toucher toutes les 10ms ou vous copier seulement ceux de la dernier événement avec ceci? – Julius