German Designer Script

Discussion in 'German Forum' started by peternmb, Apr 7, 2015.

  1. peternmb

    peternmb Active Member Licensed User

    Hallo,

    ich habe im Designer ein Eingabepanel mit einer Breite von 700dip erstellt.
    Darauf sind jede Menge Views angeordnet (Label, Button usw.).

    Bisher habe ich das nur auf Tablets genutzt, nun möchte ich das auch für Handy anpassen.
    Das Panel soll nur halb so groß, also 350dip breit sein.

    Das müsste doch eigentlich im Designer mit "AutoScaleAll" und "AutoScaleRate(0.5)" einfach machbar sein.
    Ich habe allerdings keine Ahnung wie :confused:

    Bin für jeden Tipp dankbar, sonst müsste ich das alles händisch machen...
     
  2. Harmlos

    Harmlos Member Licensed User

    mit dieser AutoScale Geschichte hatte ich noch keine brauchbaren Ergebnisse. Ich würde es dann lieber in abhängigkeit zu den Bildschirmrändern machen, dann biste auf der sicheren Seite, das es auch angezeigt werden kann. Aber ich bin jetzt auch noch kein Profi :)
     
    KMatle likes this.
  3. KMatle

    KMatle Expert Licensed User

    Ich bin da schon etwas erfahrener und habe bisher nie Autoscale & Co genutzt. Ich steuere lieber direkt, wie mein Layout aussieht. Im code ist es auch nicht schwer, verschiedene Layouts selbst zu kreieren. Ist eher eine Glaubensfrage. Gerade Anfänger sollten erst mal herumspielen. Dann sieht man direkt, warum eine View wo landet.
     
  4. peternmb

    peternmb Active Member Licensed User

    [QUOTE="KMatle, post: 330399, member: 35245"... Ich steuere lieber direkt, wie mein Layout aussieht.[/QUOTE]
    Ja, das sehe ich auch so.
    Mir ging es eigentlich nur darum mir die Arbeit des manuelle Verkleinern und Anordnen von recht vielen Views zu sparen.
    Vor allen Dingen wenn es anscheinend bei B4A eine programminterne Funktion dafür gibt.

    PS.: weiss jemand zufällig welchen ScaleFaktor das neue Galaxy S6 mit einer Auflösung von 2560x1440 hat, bzw. welches Layout ich für diese Auflösung benötige?
     
  5. KMatle

    KMatle Expert Licensed User

    Tipp: Ich generiere die Views zur Laufzeit (bin da faul und erfinderisch). Ich lege ein Array an mit den Namen der views. Meistens sind das ja Paare, wie Label mit der Bezeichnung und daneben ein Edittext, in dem man etwas eingeben kann.

    Wenn es sich lohnt (ich mache viel mit PhP und MySql), dann lege ich mir eine Tabelle an und lade das Array mit dem ich die Views erzeuge.

    Wie gesagt, alles Geschmacksache...

    Zum ScaleFaktor: Keine Ahnung...
     
  6. Harmlos

    Harmlos Member Licensed User

    Kannst du davon vielleicht mal ein Beispiel posten? Erzeugst du die Objekte auch direkt im code? Wenn ich eine App auf verschiedenen Geräten nutzen will mach ich das im Designer-Skript, so in der Art:
    Code:
    Schema.Left = 0%x
    Schema.Width = 
    100%X
    Schema.Top = 
    0%Y
    Schema.Height = 
    50%Y

    Rahmen_Schema.Left = Schema.Left
    Rahmen_Schema.Width = Schema.Width
    Rahmen_Schema.Top = Schema.Top
    Rahmen_Schema.Height = Schema.Height

    Panel_Buttons.Left = 
    0%X
    Panel_Buttons.Width = 
    100%X
    Panel_Buttons.Top = Schema.Bottom - 
    10
    Panel_Buttons.Height = 
    50%Y + 10

    'Bedienelemente
    Spinner_Datensatz123.Top = 1%Y
    Spinner_Datensatz123.Left = 
    1%X
    Spinner_Datensatz123.Width = 
    98%X
    Spinner_Datensatz123.Height = 
    9%Y

    Button_Grundfrequenz.Top = Spinner_Datensatz123.Bottom + 
    0.5%Y
    Button_Grundfrequenz.Left = 
    1%X
    Button_Grundfrequenz.Width = 
    98%X / 2
    Button_Grundfrequenz.Height = 
    9%Y
     
  7. klaus

    klaus Expert Licensed User

    Ich antworte leider erst heute weil Ich auf Reisen war, also kein B4x.
    Geht leider nicht so.

    Zum runterskalieren, im DesignerScripts, musst Du AutoScaleRate(1) benutzen. Und das kann nicht gute Ergebnisse geben je nach Breite / Höhe Verhältniss.
    Hast Du Dir schon mal das AutoScale Modul angeschaut ?
    Mit dem kannst Du mit AutoScaleRate = 1 genau wie %x und %y skalieren (auch Views die im Code hizugefügt wurden).
    Erklährungen im Kapitel 8.11 AutoScale im B4A Beginner's Guide.
    Wenn Du runterskalierst musst Du aber aufpassen dass die Views nicht zu klein werden.
     
  8. peternmb

    peternmb Active Member Licensed User

    naja, bei einem Scalefaktor von 3 (z.B. Galaxy S4 und S5) oder sogar 4 beim S6 muss ich ja alles wesentlich kleiner machen wenn Android es so enorm vergrößert oder habe ich da was falsch verstanden?

    Ich werde mich auf alle Fälle nochmal mit deinem Link beschäftigen (müssen).
     
  9. klaus

    klaus Expert Licensed User

    Ich verstehe nicht genau deine Befürchtungen mit den Scalefaktoren von 3 oder 4.
    Diese werden mit dip oder %x und %y Werten automatisch umgerechnet.
    Mit diesem Satz meinte Ich wenn Du von einem 10' Bildschirm das gleiche Layout auf einen 5' Bildschirm verkleinern willst musst Du aufpassen dass die Views nicht zu klein werden weil in diesem Fall die physikalischen Dimensionen um einen Faktor von 2 verkleinert werden.
    Um die Scalefaktoren von 3 oder 4 brauchst Du dich da nicht zu kümmern.
    Der AutoScaleRate Faktor ist noch etwas Anderes.
     
  10. peternmb

    peternmb Active Member Licensed User

    alles klar, danke für den Hinweis - da habe ich wohl etwas auf dem Schlauch gestanden...

    Ich wundere mich immer wieder was den Leuten gefällt - dem einen ist die Darstellung auf einem 8"-Gerät noch zu klein, ein anderer für den ich das zum Testen für ein 5"-Gerät angepasst habe ist mit der Darstellung darauf absolut zufrieden...
    Hat vielleicht auch was mit dem Alter oder mit den Augen zu tun :cool:
     
  11. klaus

    klaus Expert Licensed User

    Layouts und Userinterfaces sind wirklich Geschmacksache !
    Alter und Augen haben natürlich auch ihren Einfluss, und Fingergrösse auch.
    Auf früheren Geräten mit Stylus, diese werden ja heute wieder erfunden, konnte man sich mit kleineren Buttons begnügen.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice