1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. lucaaAUT, 23.11.2011 #1
    lucaaAUT

    lucaaAUT Threadstarter Junior Mitglied

    Hallo,
    Ich habe einen OnTouchListener implementiert.
    Ich habe 2 Variablen erstellt. int x & int y.
    Diese Variablen enthalten die Werte der Position wo ich auf den Bildschirm gedrückt habe.

    Jetzt mein Problem. Ich unterteile den Bildschirm in 4 Bereiche?
    Wie kann ich jetzt am besten abfragen in welchem Bereich ich bin?
    Ich will einen richtigen Code. Also effizient, ohne tausend if-abfragen.
    Zumindest ein Ansatz für mich wäre super..
    Ich will den Code dann auch herzeigen, also sollte es gut programmiert sein.

    Wie würdet ihr das machen?
    Die Bereiche sind vertikal angeordet.
    Also über die ganze Bildschirmbreite, und die Höhe in Viertel.

    Lg
     
  2. MichaelS, 23.11.2011 #2
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Verstehe dein Problem nicht so ganz. Du kannst doch einfach bei jeder View den click handler auf den gleichen setzen wenn du das unbedingt willst und der sender ist die view die geklickt wurde :) somit weißt du doch ohne irgendwelche kordinaten zu checken wo du dich befindest :)

    Gruß
    MichaelS
     
  3. lucaaAUT, 23.11.2011 #3
    lucaaAUT

    lucaaAUT Threadstarter Junior Mitglied

    Ich würde gerne wissen wie ich das Bestimmen des Bereiches am besten mache.
     
  4. MichaelS, 23.11.2011 #4
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    wie gesagt du brauchst es nicht selber zu bestimmen... verstehe nicht, warum du es dir so kompliziert machen willst =/
     
  5. DieGoldeneMitte, 24.11.2011 #5
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    MichaelS hat die einfachste Lösung bereits präsentiert: Nimm für jeden der Bereiche einen View und hänge an jeden den passenden onTouchListener dran. Dein Code enthält dan garkeine Vergleiche mehr.

    Wenn das aus irgendwelchen Gründen nicht geht: Schreibe für jede Art Bereich eine Klasse mit einer Methode contains(int x, int y) und einer names handle(),
    und erzeuge für deine Bereiche Objekte dieser Klasse(n).
    Dann kannst du in dem OnTochListener recht einfach vorgehen:

    Code:
    for( Shape s: regionen ) {
      if( s.contains(x,y) ) { s.handle(); break; }
    }
    Dann mag dein Code in der Summe vielleicht recht viele int-Vergleiche enthalten (pro Rechteck wären es zum Beispiel 4).
    Aber ein int-Vergleich ist nicht teuer und da du offensichtlich noch relativ am Anfang stehst ist es für solche Art Optiminierungen noch definitiv zu früh.

    Siehe auch: Premature Optimization
     
    Zuletzt bearbeitet: 24.11.2011
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[OFFEN] git-Problem in Android Studio (Windows) Android App Entwicklung 24.05.2017
[ERLEDIGT] put in HashMap bringt App zum abstürzen Android App Entwicklung 22.05.2017
[ERLEDIGT] Problem mit Async Task und auszuführender Aufgabe Android App Entwicklung 02.05.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Excel Dokument mithilfe von JExcelAPI auslesen funktioniert nicht :/ Android App Entwicklung 02.03.2017
Rechner leicht umschreiben Android App Entwicklung 21.01.2017
Notizen App problem Android App Entwicklung 11.01.2017
Text View erzeugt rendering Problem Android App Entwicklung 18.11.2016
Du betrachtest das Thema "Wie kann ich dieses leichte Problem effizient lösen?" im Forum "Android App Entwicklung",