Ist es möglich, die Geschwindigkeit oder Geschwindigkeit oder Beschleunigung von Touch-Ereignis in Android mit der vorhandenen API zu bekommen? Ich habe die MotionEvent-Klasse durchlaufen und keines der Felder in dieser Klasse scheint Informationen zu finden, die ich brauche. Jede Hilfe würde sehr geschätzt werdenGeschwindigkeit oder Beschleunigung von Bewegungsereignis Android
Antwort
Sie müssen die Geschwindigkeit zwischen zwei Ereignissen manuell mit System.nanoTime
berechnen. Der gleiche Weg für die Beschleunigung (aber Geschwindigkeit statt Koordinaten zu dieser Zeit).
MotionEvent hilft Ihnen in diesem Fall nicht. Sie können die VelocityTracker-Klasse verwenden. Es ruft MotionEvent-Instanzen ab und berechnet die Geschwindigkeit der letzten Berührungsereignisse. Sie können einen Blick auf seine Dokumentation nehmen hier: http://developer.android.com/reference/android/view/VelocityTracker.html
Zuerst müssen Sie eine Instanz erhalten, indem erhalten() -Methode:
VelocityTracker velocity = VelocityTracker.obtain();
dann können Sie ACTION_MOVE Ereignisse zu seiner Warteschlange hinzufügen:
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
velocity.addMovement(event);
}
dann können Sie berechnen, Geschwindigkeit und Extrakt x_velocity und y_velocity
velocity.computeCurrentVelocity(1000);
float x_velocity = velocity.getXVelocity();
float y_velocity = velocity.getYVelocity();
Ich hoffe, es funktioniert für Sie.
sehr hilfreich danke –
MotionEvents nicht Beschleunigungsmesser Ereignisse verfolgen: siehe hier: http://developer.android.com/reference/android/view/MotionEvent.html Sie müssen eine Instanz von Sensormanager für Beschleunigungs-Veranstaltungen bekommen Es ist ein großartiges Beispiel hier: http://www.techrepublic.com/blog/app-builder/a-quick-tutorial-on-coding-androids-accelerometer/472 –
Ich denke, er meint nicht Beschleunigungsmesser. –
Ja, ich meine nicht Beschleunigungsmesser. Was ich meinte war Geschwindigkeit oder Geschwindigkeit der Geste – user1253887