2010-09-03 9 views
9

Ho bisogno di aiuto per capire quanto segue.Motionevent.getX e getY

Dire che ho uno schermo che è 854x480 pixel. Perché i metodi MotionEvent.getX e getY restituiscono i float? Per quello che posso dire, i pixel sul display sono interi discreti, non c'è niente come mezzo pixel sul display.

risposta

12

Dalla pagina dello sviluppatore:

"Restituisce la coordinata X di questo evento per il dato indice di puntatore (usare getPointerId (int) per trovare l'identificatore puntatore per questo indice) numeri interi sono pixel, il valore può. avere una frazione per i dispositivi di input che sono sub-pixel precisi ".

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

Così, per alcuni dispositivi touch screen può essere più precisi di un semplice pixel di risoluzione. Immagino che questo sarebbe il caso della maggior parte del tempo per dispositivi a bassa densità come il Droid Eris.

Per semplificare l'immagine, pensare al touchscreen come completamente indipendente dallo schermo; Mi piace come puoi avere una tavoletta grafica di una dimensione che funzioni indipendentemente dalla risoluzione dello schermo. Dì se la tua risoluzione è 1600x1200, spostando la penna dici .02 pollici potrebbero essere l'equivalente di 4 o 5 pixel di movimento, mentre su uno schermo 800x600 sarebbe solo 2 o 3. (numeri completamente inventati, ma il punto è valido)

+0

Vedo, questo ha senso. –

Problemi correlati