German App-Fenster unabhängig von Display-Auflösung mittig?

Zerberus

Member
Licensed User
Longtime User
Hallo,

gibt es eine Möglichkeit, das Fenster einer App, welches z.B. mit 320X480 auf dem Smartphone formatfüllend ist und auf dem Tablet oben links hängt, auf dem Tablet zu zentrieren, ohne dafür im Designer eine extra Variant zu erstellen?

Grüße

Zerberus
 

eurojam

Well-Known Member
Licensed User
Longtime User
Hallo Zerberus,
was meinst Du denn mit dem Fenster einer App? ein Panel? Folgendes Beispiel macht das Element immer mittig in der Größe, die unter x und y angegeben sind:
B4X:
Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim wv As WebView
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
    wv.Initialize("wv")
   
    Dim x As Int = 260dip
    Dim y As Int = 380dip
   
    Activity.AddView(wv, (100%x/2)-(x/2),(100%y/2)-(y/2),x,y)
    wv.LoadUrl("http://www.webgis.de")
End Sub

Gruß
Stefan
 

klaus

Expert
Licensed User
Longtime User
Ich schlage Dir folgendes vor:
Verschiebe alle Views des Layouts auf ein Panel.
Zum Beispiel pnlMain.
Und dann in DesignerScripts:
B4X:
AutoScaleAll

pnlMain.HorizontalCenter = 50%x
pnlMain.VerticalCenter = 50%y

Du kannst auch noch mit AutoScaleRate(x) 'spielen'.
Zum Beispiel:
B4X:
AutoScaleRate(0.5)
AutoScaleAll

pnlMain.HorizontalCenter = 50%x
pnlMain.VerticalCenter = 50%y
AutoScale vergrössert all Views und Texte gemäss der Gerätegrösse.
Mit AutoScaleRate(x) kannst Du den Vergrösserungsfaktor setzten.
Der Standardwert ist 0.3.
Mit AutoScaleRate(0) keine Vergrösserung.
Mit AutoScaleRate(1) ist die Vergrösserung ähnlich wie mit %x und %y.

Ausführliche Erklärungen befinden sich im B4A Beginner's Guide, leider nur in Englisch.
 

Zerberus

Member
Licensed User
Longtime User
Vielen Dank für Eure Tips, ich teste und melde mich wieder.

Gruß

Zerberus
 

Zerberus

Member
Licensed User
Longtime User
Im Test wird das Panel zentriert und vergrößert. Die Views werden auch vergrößert, ABER nicht zentriert, sondern hängen immer noch oben links.

Ich habe das Panel erstellt und die vorhandenen Views auf das Panel verschoben. Wie kann ich die Views an das Panel binden?
 

klaus

Expert
Licensed User
Longtime User
Du musst für die Views den Parent Parameter ändern!

upload_2015-12-22_21-48-33.png
 

Zerberus

Member
Licensed User
Longtime User
Vielen Dank, jetzt sieht es gut aus!

Was mir aufgefallen ist: Wenn ich im Designer eine Variant 320x480 erstelle und ein Panel 320x480, dann stimmen beide nicht in der Höhe überein (Panel ist höher). Ich dachte erst, das könnte mit #IncludeTitle: False (bzw. True) zu tun haben, hat es aber nicht...

Edit: Hat es doch. Hier die Erklärung.
 
Last edited:
Top