Android: vous ne pouvez pas l'air d'utiliser MotionEvent.ACTION_MOVE correctement
Je suis tout à fait nouvelle pour Android de programmation Java et (si j'ai de l'expérience avec C#, donc ça aide).
En ce moment, je suis à tourner autour d'un couple de choses à chercher à savoir comment tout fonctionne. J'ai fait une activité qui met en œuvre onTouchListener. J'ai surchargé onTouch et ont un commutateur à l'événement.getAction():
public boolean onTouch(View v, MotionEvent event)
{
float x;
float y;
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN: //gets called
{
x = event.getX();
y = event.getY();
circle c = new circle(this, x, y, 10, 0xFFFFFF);
_main.addView(c, tapCount++);
break;
}
case MotionEvent.ACTION_MOVE: //doesnt seem to do anything
{
x = event.getX();
y = event.getY();
circle c = new circle(this, x, y, 10, 0xFFFFFF);
_main.addView(c, tapCount++);
break;
}
}
return false;
}
Où "le cercle" est une classe qui dessine un cercle.
Ce que j'attend de voir a été un sentier de cercles comme je l'ai glissé mon doigt sur l'écran. À la place, le cercle est dessiné quand j'ai commencer à toucher.
J'ai comparé mon code pour des exemples (par exemple: cet article sur le blog de Google: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html ) et je ne trouve pas mon erreur.
EDIT:
Lien vers la catégorie:
http://pastebin.com/tVDQjQhu
EDIT:
Fixe. On doit retourner true dans le onTouch() fonction. oh pinaise!
OriginalL'auteur Stijnn | 2011-06-08
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème lors de l'utilisation
MotionEvent.ACTION_MOVE
.Pour
MotionEvent.ACTION_MOVE
de travail, retourner la valeur true au lieu de false.Lorsque vous remplacez onTouchEvent le booléen votre retour booléen indique si l'événement a été consommé ou non.
OriginalL'auteur Saurabh Verma
Pour moi la Solution a été
dans le onTouch fonction que vous devriez utiliser cette
}
lorsque vous revenez faux de onTouch(View v, MotionEvent event) puis seulement MotionEvent.ACTION_DOWN sera appelée. donc, vous devriez retourner true à partir de cette fonction
Espérons que cette aide
OriginalL'auteur QAMAR
Eu les mêmes problèmes, je ne sais pas si c'est un bug ou pas, mais j'ai réussi à le faire fonctionner en ajoutant
OnClickListener
à la mise en œuvre, et la mise en œuvre depublic void onClick(View v)
puis aussi l'ajout desetOnClickListener(this)
sur le constructeur.OriginalL'auteur ayinozendy