2010-09-03 30 views
9

J'ai besoin d'aide pour comprendre ce qui suit.Motionevent.getX et getY

Disons que j'ai un affichage de 854 x 480 pixels. Pourquoi est-ce que les méthodes MotionEvent.getX et getY retournent des flottants? Autant que je sache, les pixels sur l'affichage sont des entiers discrets, il n'y a pas un demi-pixel sur l'affichage.

Répondre

12

Sur la page développeur:

« Renvoie la coordonnée X de cet événement pour l'indice de pointeur donné (utiliser getPointerId (int) pour trouver l'identificateur de pointeur pour cet index) Les nombres entiers sont pixels, la valeur peut. avoir une fraction pour les périphériques d'entrée qui sont sous-pixel précis. "

http://developer.android.com/reference/android/view/MotionEvent.html#getX()

Donc, pour certains appareils de l'écran tactile peut être plus précis qu'une simple résolution de pixels. J'imagine que ce serait le cas la plupart du temps pour les appareils à faible densité tels que les Erick Droid.

Pour l'imaginer plus facilement, pensez à l'écran tactile comme étant complètement indépendant de l'écran; comme comment vous pouvez avoir une tablette de dessin d'une taille qui fonctionne indépendamment de la résolution de l'écran. Dites si votre résolution est 1600x1200, en déplaçant votre stylo dire .02 pouces pourrait être l'équivalent de 4 ou 5 pixels de mouvement, alors que sur un écran de 800x600, il serait seulement 2 ou 3. (chiffres complètement inventés, mais le point est valide

+0

Je vois, c'est logique. –