2010-12-16 182 views
0

Lorsque vous utilisez GestureDetector pour capturer le geste à l'écran, je suis confus par la coordonnée X-Y de l'écran d'android. Par exemple:quelle est la coordonnée de geste d'une vue sur android

class TouchPadGL extends GestureDetector.SimpleOnGestureListener { 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, 
          float distanceX, float distanceY) { 
     Log.i("onScroll",String.format("dsX: %s, dsY: %s",distanceX,distanceY)); 
    } 
    public boolean onFling(MotionEvent e1, MotionEvent e2, 
          float velocityX, float velocityY) { 
     Log.i("onFling",String.format("vX: %s, vY: %s",velocityX,velocityY)); 
    } 
} 

Selon la sortie de la méthode OnScroll ci-dessus, il est semble le point (0,0) est au coin droit en bas de la vue, avec l'étirement axe X à gauche et Y- hache s'étend vers le haut. Mais lorsque vous vérifiez la sortie de la méthode onFling, vous verrez qu'il semble que (0,0) est dans le coin supérieur gauche et que X-ax s'étend à droite et Y-ax s'étend vers le bas. pourquoi cela pourrait-il arriver?

Est-ce un bug dans l'API Android ou je prends mal?

BTW, le code est exécuté sur l'API 2.1

Répondre

0

le docs disent:

distanceX La distance le long de l'axe X qui a été depuis le dernier défilé appel à OnScroll. Ce n'est pas la distance entre e1 et e2.

distanceY La distance le long de l'axe Y défilée depuis le dernier appel à onScroll. Ce n'est pas la distance entre e1 et e2.