Android onFling ne répond pas
Je suis nouveau sur android tout d'abord penser à des erreurs de débutant d'abord
Je suis en train d'ajouter une aventure fonction dans mon code.
public class MainGamePanel extends SurfaceView implements
SurfaceHolder.Callback, OnGestureListener {
private MainThread thread;
private Droid droid;
private Droid droid2;
private static final String TAG = gameView.class.getSimpleName();
private GestureDetector gestureScanner;
public MainGamePanel(Context context){
super(context);
getHolder().addCallback(this);
droid = new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.playerbox2), 270, 300);
droid2 = new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.playerbox2), 50, 300);
thread = new MainThread(getHolder(), this);
setFocusable(true);
gestureScanner = new GestureDetector(this);
}
public boolean onTouchEvent(MotionEvent event){
return gestureScanner.onTouchEvent(event);
}
@Override
protected void onDraw(Canvas canvas){
canvas.drawColor(Color.BLACK);
droid.draw(canvas);
droid2.draw(canvas);
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
droid.setX(50);
droid.setY(50);
Log.d(TAG, "Coords: x=" + e1.getX() + ",y=" + e2.getY());
return true;
}
@Override
public boolean onDown(MotionEvent e) {
droid2.setX((int)e.getX());
droid2.setY((int)e.getY());
Log.d(TAG, "Coords: x=" + e.getX() + ",y=" + e.getY());
return false;
}
J'ai eu le gestureListener de travailler avec: onDown, onLongPress, et onShowPress.
Mais je ne peux pas obtenir la moindre réponse avec onFling, onSingleTapUp, et onScroll.
Quelle erreur ai-je fait? a-t-elle à voir avec vues?
Je ne sais pas ce code serait utile de voir.... donc, toutes les suggestions seront très appréciés.
Merci!!!!
- Post de la mise en œuvre de vos auditeurs pour obtenir de l'aide.
Vous devez vous connecter pour publier un commentaire.
onDown
est appelée avant laonFling
événement.Si vous renvoie false dans
onDown
méthode, le mouvement de la propagation de l'évènement s'arrête.Essayer de changer
return false
dansreturn true
à la fin deonDown
méthode.Les valeurs de retour sont expliqués, quelque peu obscure, dans la Les Événements D'Entrée page de la Dev guide. (faites défiler vers le bas ci-dessous l'exemple de code pour voir).
Vous devez définir votre vue longclickable, comme ceci:
Idéalement, nous devrions ne pas être.. GestureDetector fonctionne différemment lorsque associé à l'Activité Vs lorsqu'il est associé avec Vue. Il y a déjà un problème signalé.. cliquez ici pour plus de détails.
Pour moi, j'ai dû changer la setLongClickable de vrai.
J'ai essayé la valeur de retour de onDown méthode pour vrai, ça n'a pas fonctionné.
puis j'ai mis
ll_action_menu.setLongClickable(true);
il a travaillé