1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. pierredrks, 13.09.2017 #1
    pierredrks

    pierredrks Threadstarter Neuer Benutzer

    Hallo, ich bin gerade dabei eine iOS App auf Android zu portieren. Soweit klappt das auch ganz gut, allerdings habe ich ein Problem mit einer View. Die View stellt im Grunde einen Drehknopf dar, der in der Mitte einen Button hat, darum ist der Drehregler und um diesen Regler sind kreisförmig einzelne Punkte angeordnet um den aktuellen Stand des Reglers anzuzeigen, entsprechend ändern diese Punkte auch die Farbe.

    Hier ein Bild zum besseren Verständnis.
    Control.png


    Nun zur Frage, welcher Ansatz wäre der Beste um diese View umzusetzen?
    Bisher habe ich eine eigene View Subclass erstellt und den Kram über Drawables "gezeichnet", klappt auch relativ gut aber das Handling von Taps auf die verschiedenen Buttons und Swipes zum drehen des Knopfs scheint nicht wirklich zu Funktionieren, zumindest habe ich keine Ahnung wie ich einen Swipe erkennen soll.

    Viele Grüße,
    Pierre
     
    Zuletzt von einem Moderator bearbeitet: 13.09.2017
  2. swa00, 13.09.2017 #2
    swa00

    swa00 Moderator Mitarbeiter

    Halo Pierre,

    ich habe so etwas auch in einigen meiner Apps realisiert.

    a) Du musst Dir Dazu einen CustomView basteln der bei OnDraw mit Canvas deine Grafik rendert.
    b) Für die Bewegungserkennung musst du OnTouchEvent verarbeiten
     
  3. pierredrks, 13.09.2017 #3
    pierredrks

    pierredrks Threadstarter Neuer Benutzer

    Hallo Stefan,

    soweit bin ich schon. Momentan habe ich das Problem, dass onTouchEvent nur beim ersten berühren des Screens aufgerufen wird. Ich habe letzten Endes 4 Buttons die ich abbilden muss. Das würde über das Event und die X,Y Koordinaten funktionieren, auch wenn die Berechnung wo jetzt getappt wurde unnötig kompliziert ist. Aber wenn ich den Finger über den Screen bewege (Swipe) bekomme ich das leider nicht mit. Ich hatte auch einen GestureRecognizer versucht, der reagiert aber irgendwie gar nicht.

    Aber immerhin scheine ich auf dem richtigen Weg zu sein.

    Gruß
    Pierre
     
  4. swa00, 13.09.2017 #4
    swa00

    swa00 Moderator Mitarbeiter

    Kardroid gefällt das.
  5. markus.tullius, 13.09.2017 #5
    markus.tullius

    markus.tullius Android-Lexikon

    Hallo Pierre,

    noch ein Nachtrag zum OnTouch. Das MotionEvent fängt der Listener auch ab, wenn du mehrere Finger benutzt, den Finger hoch nimmt usw. In der Doku stehen unendlich viele Konstanen die mit 'Action_' anfangen. Du muss einfach überprüfen, welches Event verwendet wurde.
    MotionEvent | Android Developers

    Ich habe es mal für ein Viel gebraucht, wo man etwas einzeichnen kann. Es funktioniert, ist aber recht mühsam.

    Noch ein Beispiel von Google:
    Managing Touch Events in a ViewGroup | Android Developers
     
    swa00 gefällt das.
  6. pierredrks, 14.09.2017 #6
    pierredrks

    pierredrks Threadstarter Neuer Benutzer

    Danke euch beiden, der Beispielcode von Stefan hat mir geholfen. Jetzt funktioniert die Erkennung der Taps und Swipes, den Rest sollte ich dann auch noch schaffen.

    Gruß,
    Pierre
     
    swa00 gefällt das.
Die Seite wird geladen...
Du betrachtest das Thema "[ERLEDIGT] Komplexe View erstellen" im Forum "Android App Entwicklung",