J'ai une classe s'étend ViewGroup
et je veux obtenir tous les MotionEvent
. Jusqu'à présent, j'ai ceci:Tracer un MotionEvent dans un ViewGroup
class TestViewGroup extends ViewGroup {
public TestViewGroup(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("TestViewGroup", "X: " + (int)event.getX() + " Y: " + (int)event.getY());
return true;
}
}
La méthode onTouchEvent(MotionEvent event)
est capable de capturer un MotionEvent
chaque fois que je mets mon doigt sur l'écran. Mais si je déplace mon doigt autour de l'écran alors que mon doigt est toujours en bas, il ne continuera pas à tracer les coordonnées de mon doigt. Je sais que dans une classe qui s'étend un View
, il est possible de continuer à suivre le doigt pendant qu'il se déplace à travers le View
. Je me demande simplement comment il est possible d'appliquer la même idée à un ViewGroup
.
Vous savez, vous avez raison, ce n'est rien à voir avec View ou ViewGroup, c'est en fait lié à la façon dont je l'intègre je pense. J'essaye de placer le ViewGroup dans le WindowManager du système de sorte qu'il puisse rester persistant sur une superposition de système (montrer fondamentalement une vue n'importe quelle activité est dessus). Savez-vous si l'ajout d'une vue au WindowManager affecte la manière dont les événements tactiles lui sont transmis? – Brian
@AeroDroid ... semble être une chose intéressante à faire, je suggère d'ouvrir une autre question et de reformuler, également ajouter du code. Vous pouvez également essayer @Override public boolean dispatchTouchEvent (événement MotionEvent) {} comme alternative, car il semble être un peu plus robuste dans l'obtention d'événements, vous devrez ajouter du code si – Idistic
En fait, je viens d'ouvrir une nouvelle question il y a un moment , ici s'il vous plaît jeter un coup d'oeil [ici] (http://stackoverflow.com/questions/6725636/getting-all-motionevents-with-windowmanager-layoutparams-flag-watch-outside-touch). – Brian