German Landscape sicher abfragen

taunusbaer01

Member
Licensed User
Longtime User
Hallo an Alle,

ich möchte einen Kompass in meiner App darstellen.
Beispiele habe ich im Forum und in den Beispielen gefunden und der Kompass funktioniert. Mein Problem ist die Abfrage ob ich im Portrait oder im Landscapemodus bin.
Mit der Abfrage: If "Activity.Width > Activity.Height Then" hat es auch erst funktioniert und ich habe bei der der Darstellung des Kompass einfach 90Grad abgezogen. Drehe ich mein Handy im Uhrzeigersinn in den Landscapemodus funktioniert mein Kompass. Drehe ich mein Handy aber gegen den Uhrzeigersinn zeigt der Kompass 180Grad falsch an.

Habt ihr eine Tip wie ich die Posistion in der das Handy gehalten wird sicher und einfach abfragen kann?

Schon mal Besten Dank an euch

Schöne Grüß aus dem Taunus von Uwe
 

klaus

Expert
Licensed User
Longtime User
Dieser Code erlaubt die Orientierung zu erfassen, braucht die Reflection Library, er kommt von hier:
B4X:
Sub GetOrientation As Int
    Dim r As Reflector
    r.Target = r.GetContext
    r.Target = r.RunMethod2("getSystemService", "window", "java.lang.String")
    r.Target = r.RunMethod("getDefaultDisplay")
    Return r.RunMethod("getOrientation")
End Sub
Hier musst Du aufpassen den je nach Geräteart sind die Werte unterschiedlich.
Smartphones und Tabletts haben unterschiedliche Werte.

Auf meinem Nexus One Smartphone:
0 = portrait
1 = landscape nach links
3 = landscape nach rechts
portrait umgekehrt oben ist unten wird nicht erkannt

Auf meinem Asus TF700 Tablett:
0 = landscape normal
2 = landscape umgekehrt oben ist unten
1 = portrait nach links
3 = portrait nach rechts

0 wird als 'normale' Orientierung angenommen.
Portrait auf Smartphones und landscape auf Tabletts !

Beste Grüsse.
 

taunusbaer01

Member
Licensed User
Longtime User
Besten Dank Klaus,
unglaublich wie schnell du immer bist! :sign0098:

Ich werde es gleich mal testen.
Gruß Uwe
 

taunusbaer01

Member
Licensed User
Longtime User
Es funktioniert super.

Bei meinem Samsung S1 ist es wie bei Klaus seinem Nexus One.
Portrait umgekehrt wird nicht erkannt.

Mein Nexus 7 verhält sich dagenegen wie das Asus TF700 Tablett.
Alle vier Ausrichtungen werden erkannt.

nochmal besten Dank :sign0098:

Bis Bald Uwe
 
Top