2009-07-27 6 views
2

J'ai 2 questions à propos de android TrackBall Event. J'apprécie si vous pouvez m'aider avec eux:Besoin d'aide avec Android TrackBall Événement

  1. Puis-je détecter la vitesse de l'événement TrackBall? Comme à Fling, je peux détecter une «grosse» aventure contre une «petite». Puis-je lancer via la boule de piste?

  2. Pourquoi l'événement TrackBall est-il toujours suivi par les événements Key left/right? Pour moi, ils semblent dupliqués.

Par exemple, je mets la déclaration de débogage dans les deux dispatchTrackballEvent() et dispatchKeyEvent() et je passe en mode « trackball » dans l'émulateur. Quand je déplace ma souris, je vois toujours dispatchTrackballEventevent avec dispatchKeyEvent.

Nous vous remercions de votre aide.

+0

Est-ce que ma réponse vous a aidé? –

+0

Oui. Merci de votre aide. – n179911

Répondre

3

réponses à vos doutes:

  1. événements trackball Envoyer android vous un objet MotionEvent (docs), de cet objet, vous pouvez lire les informations historiques qui vous permet de faire un delta de mouvement, de cette façon vous pouvez savoir avec quelle intensité la balle a été roulée. Cela est dû au fait que vous n'indiquez pas au système que vous avez consommé l'événement dans votre gestionnaire onTrackBallEvent (docs). Si vous ne renvoyez pas true, l'événement est alors déclenché en tant qu'événement de clé D-Pad.

+0

Dans le carnet d'adresses android, dans la liste des contacts, je peux «lancer» vers le haut/bas en utilisant TrackBall (pas seulement l'écran Toouch). Mais quand je regarde le code source du carnet d'adresses, je ne vois pas qu'ils implémentent dispatchTrackBall(), alors comment ont-ils implémenté le "flinging" via le trackball? Une idée? Merci. – n179911

+0

Il n'est pas nécessaire d'appeler dispatchTrackBall, vous ne pouvez implémenter onTrackBallEvent que dans la vue (dans ce cas, la vue liste). http://developer.android.com/reference/android/view/View.html#onTrackballEvent(android.view.MotionEvent) –

Questions connexes