Android: kann nicht scheinen, um die Verwendung MotionEvent.ACTION_MOVE richtig
Ich bin ganz neu mit Android-Programmierung und Java (obwohl ich habe einige Erfahrung mit C#, so dass das hilft).
In diesem moment bin ich goofing um mit ein paar Dinge, um zu wissen, wie alles funktioniert. Ich habe eine Tätigkeit, die onTouchListener implementiert. Ich habe überschrieben, onTouch und über einen Schalter auf event.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;
}
Wobei "Kreis" ist eine Klasse, die zeichnet einen Kreis.
Was ich erwartet hatte zu sehen, war eine Spur der Kreise, die ich zog meinen finger über den Bildschirm. In stead, der Kreis wird nur gezeichnet, wenn ich beginne zu berühren.
Habe ich im Vergleich mein code zu den Beispielen (Beispiel: dieser blogpost von Google: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html ) und ich kann nicht finden, mein Fehler.
BEARBEITEN:
Link zum vollständigen Klasse:
http://pastebin.com/tVDQjQhu
BEARBEITEN:
Behoben. Man muss true zurückgeben, in der onTouch () - Funktion. d ' Oh!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem während der Verwendung
MotionEvent.ACTION_MOVE
.Für
MotionEvent.ACTION_MOVE
zu arbeiten, kehren Sie true anstelle von false.Lösung für mich war
in der onTouch-Funktion, wie Sie sollten dies verwenden,
}
wenn Sie false zurück von onTouch(View v, MotionEvent event) dann nur MotionEvent.ACTION_DOWN aufgerufen werden. so sollten Sie wieder wahr, die von dieser Funktion
Hoffe das hilft
Hatte die gleichen Probleme auch, ich weiß nicht, ob es ein bug ist oder nicht, aber ich hab es geschafft, es funktioniert durch das hinzufügen
OnClickListener
um die Umsetzung, und die Umsetzungpublic void onClick(View v)
dann auch hinzufügensetOnClickListener(this)
auf den Konstruktor.