2017-07-14 5 views
1

Lorsqu'une souris est branchée sur un appareil Android (pas d'écran tactile), un curseur de souris classique s'affiche à l'écran, nous pouvons contrôler la souris pour déplacer le curseur et cliquez. Nous pouvons obtenir l'emplacement du pointeur lorsque clic (égal à « écran du robinet », ACTION_DOWN) souris par code suivant:Comment obtenir la position du pointeur de la souris lorsque Android n'est pas dans l'état ACTION_DOWN

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    int x = (int)event.getRawX(); 
    int y = (int)event.getRawY(); 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
     //do something 
     case MotionEvent.ACTION_MOVE: 
     //do something 
     case MotionEvent.ACTION_UP: 
     //do something 
    } 
return true; 
} 

Mais nous obtenons la position du pointeur lorsque seule action de clic de souris se produit, ne peut pas obtenir le pointeur de la souris position quand il se déplace sur l'écran en déplaçant la vraie souris. Donc, ma question est, comment obtenir l'emplacement du pointeur de la souris dans cette condition (pas cliquer sur la souris, juste en mouvement)?

+0

Jetez un oeil à ce https://stackoverflow.com/questions/5454448/android-tracking-mouse-pointer -mouvement –

Répondre

1

Vous voulez que votre activité à mettre en œuvre GestureDetector.OnGestureListener mettre en œuvre onGenericMotionEvent ou avoir votre point de vue la contourner:

@Override 
public boolean onGenericMotionEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_HOVER_MOVE) { 
     // Do something 
     // Maybe also check for ACTION_HOVER_ENTER and ACTION_HOVER_EXIT events 
     // in which case you'll want to use a switch. 
    } 
    return true; 
}