[ERLEDIGT] Komplexe View erstellen

P

pierredrks

Neues Mitglied
1
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 bearbeitet von einem Moderator:
Bearbeitet von: hanspampel - Grund: Bild angehangen und eingebettet (über Büroklammer bei TT) - "hanspampel"
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
 
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
 
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
 
  • Danke
Reaktionen: swa00
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
 
  • Danke
Reaktionen: swa00

Ähnliche Themen

5
Antworten
0
Aufrufe
1.140
586920
5
R
Antworten
6
Aufrufe
993
swa00
swa00
W
Antworten
2
Aufrufe
737
rene3006
R
Zurück
Oben Unten