German User zwingen zu Landscape / Portrait

kaplanerkan

Member
Licensed User
Longtime User
Hallo,

in meinem Project habe ich 1 TaBHost mit 6 Tabs.
In 1. Tab lese ich einpaar Daten aus einem XML-Datei.
Da die Breite etwas gross und lang ist, möchte die User zwingen, mein Apps an dieser Stelle immer als Landscape zu benutzen, bzw. die User möchte ich keine Möglichkeit geben, dass sie das Aussehen links, rechts usw drehen können...

Wie kann ich am besten realisieren?

ps: Die User werden immer gleichen Tablet und Auflösung benutzen, nämlich 1280x800x160


danke im Voraus
erkaN
 

Kiffi

Well-Known Member
Licensed User
Longtime User
Menüzeile:
-> Project
--> Orientations supported
---> Landscape

:)

Grüße ... Kiffi

Edit: Sorry, hab's grade erst gelesen, dass Du es zu Laufzeit und
nur für ein bestimmtes Layout haben willst. Da kann ich leider
nicht weiterhelfen.
 
Last edited:

kaplanerkan

Member
Licensed User
Longtime User
Ich hab folgendes gefunden, weiss aber nicht ob es genau ist was ich suche.

Phone Screen Orientation


SetScreenOrientation (Orientation As Int)
Changes the current activity orientation. This method cannot be called from a service module.
Orientation - -1 for unspecified, 0 for landscape and 1 for portrait.
 

klaus

Expert
Licensed User
Longtime User
Du musst :
- die Phone Library aktivieren
unten recht im IDE Tab Libs Phone anhaken
- ein Phone Objekt erstellen
Dim Phone1 As Phone
- Orientierung einstellen
Phone1.SetScreenOrientation(-1) für unbestimmt
Phone1.SetScreenOrientation(0) für Landscape
Phone1.SetScreenOrientation(1) für Portrait

Wenn du die Orientierung ändern (begrenzen) willst musst Du eine der drei obigen Zeilen in Dein Programm einfügen.

Beste Grüsse.
 

kaplanerkan

Member
Licensed User
Longtime User
Phone1.SetScreenOrientation(-1) für unbestimmt


Hab eine Frage, wenn da "-1" steht, ist es dann dem Sensor überlassen? d.h. der User kann links rechts drehen, oder speichert er aktuellen Status und bleibt so bis dass Program beendet wird, d.h. -1 wird eingestellt, momentan ist die Status Landscape, und wird es bis zum Abbrechen des Program so bleiben.


ps:Hab momentan mein Samsung Tablet nicht dabei, kann deswegen nicht testen.
 

Kiffi

Well-Known Member
Licensed User
Longtime User
0 erzwingt den Landscape-Modus
1 erzwingt den Portrait-Modus

Wenn Du -1 einträgst, dann richtet sich
die Ausrichtung nach dem Sensor.

hab's grade ausprobiert. Funktioniert einwandfrei:
B4X:
Sub Globals

  Dim Phone1 As Phone

  Dim cmdPortrait As Button
  Dim cmdLandscape As Button
  Dim cmdBothOrientations As Button

End Sub

Sub Activity_Create(FirstTime As Boolean)

  cmdPortrait.Initialize("cmdPortrait")
  cmdPortrait.Text = "Only portrait"

  cmdLandscape.Initialize("cmdLandscape")
  cmdLandscape.Text = "Only landscape"

  cmdBothOrientations.Initialize("cmdBothOrientations")
  cmdBothOrientations.Text = "Both orientations"

  Activity.AddView(cmdPortrait, 40dip, 50dip, 100%X - 80dip, 60dip)
  Activity.AddView(cmdLandscape, 40dip, 110dip, 100%X - 80dip, 60dip)
  Activity.AddView(cmdBothOrientations, 40dip, 170dip, 100%X - 80dip, 60dip)

End Sub

Sub cmdPortrait_Click
  Phone1.SetScreenOrientation(1)
End Sub

Sub cmdLandscape_Click
  Phone1.SetScreenOrientation(0)
End Sub

Sub cmdBothOrientations_Click
  Phone1.SetScreenOrientation(-1)
End Sub

Grüße ... Kiffi
 
Top