1156 Stimmen

Erkennung von Fling-Gesten im Rasterlayout

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 die Grid oder die Image Ansichten, die ich hinzufügen.

    public class SelectFilterActivity extends Activity implements
       View.OnClickListener, OnGestureListener { ...
  • Wenn meine Aktivität Folgendes implementiert OnTouchListener dann habe ich keine onFling Methode zu override (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 , wie GestureImageView die die ImageView Ich weiß nicht, wie ich der Aktivität mitteilen kann, dass eine fling 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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X