Ich möchte eine fling
Gestenerkennung in meiner Android-Anwendung funktioniert.
Was ich habe, ist ein GridLayout
die 9 enthält ImageView
s. Die Quelle ist hier zu finden: Romain Guys' Raster-Layout .
Diese Datei stammt von Romain Guy's Fotostream-Anwendung und wurde nur leicht angepasst.
Für die einfache Klick-Situation muss ich nur die onClickListener
für jede ImageView
Ich füge hinzu, dass ich der wichtigste activity
die Folgendes implementiert View.OnClickListener
. Es scheint unendlich viel komplizierter zu sein, etwas zu implementieren, das eine fling
. Ich vermute, dass dies daran liegt, dass sie sich über views
?
-
Wenn meine Aktivität Folgendes implementiert
OnGestureListener
Ich weiß nicht, wie man als Gesten-Listener für dieGrid
oder dieImage
Ansichten, die ich hinzufügen.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
-
Wenn meine Aktivität Folgendes implementiert
OnTouchListener
dann habe ich keineonFling
Methode zuoverride
(es hat zwei Ereignisse als Parameter, die es mir zu bestimmen, ob der Seitensprung nennenswert war).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
-
Wenn ich eine benutzerdefinierte
View
, wieGestureImageView
die dieImageView
Ich weiß nicht, wie ich der Aktivität mitteilen kann, dass einefling
aus dem Blickfeld geraten ist. Auf jeden Fall habe ich dies versucht und die Methoden wurden nicht aufgerufen, wenn ich den Bildschirm berührte.
Ich brauche wirklich nur ein konkretes Beispiel dafür, wie dies in verschiedenen Ansichten funktioniert. Was, wann und wie sollte ich dies anbringen listener
? Ich muss in der Lage sein, auch einzelne Klicks zu erkennen.
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
Ist es möglich, eine transparente Ansicht über meinen Bildschirm zu legen, um Flüge zu erfassen?
Wenn ich nicht will inflate
meine untergeordneten Bildansichten aus XML kann ich die GestureDetector
als Konstruktorparameter für eine neue Unterklasse von ImageView
die ich schaffe?
Dies ist die sehr einfache Aktivität, die ich versuche, die fling
Entdeckung, für die man arbeiten kann: SelectFilterActivity (Angepasst von photostream) .
Ich habe mir diese Quellen angeschaut:
Bislang hat bei mir nichts funktioniert, und ich hoffte auf ein paar Tipps.