Hallo,
probiere nun endlich meine erste Android App
Delphi 10 Seattle Pro mit Mobile Pack.
Samsung Galaxy S5, über USB angeschlossen, Entwicklermodus, USB Debugging an.
Erstelle Geräteübergreifende Anwendung. SM-G900F wird bei Zielplattformen angezeigt.
Passt soweit.
Gewählt:
Stil: Android, Ansicht war "Master", habe zuerst Android 5" Phone gewählt.
Paar Buttons Labels und Edits drauf. Und start.
Kam auch dann auf dem Handy daher und funktioniert. Schon mal super.
Unter Ansicht kann ich ja nun "Master" oder "Android 5" Phone" wählen.
Auf dem Handy kam jedoch mein Design von "Android 5 Phone" daher (hab die Buttons
in den zwei Ansichten anders verteilt, so dass ich das unterscheiden kann).
Leider die Größe des Fensters im Designer enspricht nicht dem S5, einige Buttons verschwinden halb am Rand rechts.
Lt. Help ist der vordefinierte Android 5" mit 1920x1200, mein S5 hat 1920x1080. Aha.
Also lt. Help in DevicePresets.xml unter
C:\Users\<Benutzername>\AppData\Roaming\Embarcader o\
BDS\17.0
neuen Eintrag rein:
Code:
<MobileDevice>
<Name>SamsungGalaxyS5</Name>
<DevicePlatform Default="False">3</DevicePlatform>
<Portrait Enabled="True" Width="540" Height="960" Top="0" Left="0" StatusbarHeight="0" StatusBarPos="0" Artwork="D:\ProjectsDelphi\AndroidProjekte\BackgroundGraphics\1080x1920div2.jpg"/>
<UpsideDown Enabled="False" Width="0" Height="0" Top="0" Left="0" StatusbarHeight="0" StatusBarPos="0" Artwork=""/>
<LandscapeLeft Enabled="False" Width="0" Height="0" Top="0" Left="0" StatusbarHeight="0" StatusBarPos="0" Artwork=""/>
<LandscapeRight Enabled="False" Width="0" Height="0" Top="0" Left="0" StatusbarHeight="0" StatusBarPos="0" Artwork=""/>
<Displayname>Samsung Galaxy S5</Displayname>
<UserData>True</UserData>
<FormFactor>2</FormFactor>
<Thumbnail>C:\Users\... :) ...\AppData\Roaming\Embarcadero\
BDS\17.0\Thumbs\sgs4</Thumbnail>
</MobileDevice>
Habe mir eine JPG erstellt "1080x1920div2.jpg" mit 540x960 Pixel Grösse (also halbe Auflösung, da FormFactor = 2, oder?).
Und dann
Package erstellt, auf Basis der Help:
-------
Delphi-Quellcode:
unit Unit1;
interface
implementation
uses
system.Devices, system.Types, system.SysUtils;
const
ViewName = '
SamsungGalaxyS5';
// The unique name of the view, it has to be the same name as the one written between <Name></Name> tags of the DevicePreset.xml file.
initialization
TDeviceinfo.AddDevice(TDeviceinfo.TDeviceClass.Phone, ViewName,
TSize.Create(1920, 1080), TSize.Create(1920
div 2, 1080
div 2),
// MinPhysicalSize(max, min), MinLogicalSize(max, min)
TSize.Create(1920, 1080), TSize.Create(1920
div 2, 1080
div 2),
// MaxPhysicalSize(max,min), MaxLogicalSize(max,min)
TOSVersion.TPlatform.pfAndroid, 432);
//Select the platform and the pixel density.
finalization
TDeviceinfo.RemoveDevice(ViewName);
// To unregister the view after unistalling the package.
end.
-----------------------
Hier verstehe ich schon nicht, waumr min/max...Size? Mein Display hat exakt 1920x1080. Was sollte ich dann bei min... eingegen.
Habe jetzt mal einfach das Gleiche rein.
Dann installiert.
IDE neu starten...
Und tatsächlich ist nun unter "Ansicht:" auch mein "Samsung Galaxy S5" aufgelistet.
Kanns auch auswählen. Und nun meine Buttons da reintun.
Und bei "Geräteübergreifende Vorschau ists auch da".
Mache nun wieder meine Buttons und paar Labels irgendwo hin.
Start...
Aber jetzt, kommt auf dem Handy leider nur immer das Design von "Master" Ansicht daher. Schade!
Meine Frage:
Was mache ich falsch? Warum kann ich mein Design das ich unter "Ansicht:" gewählt habe,
nicht auf dem Handy herbekommen?
Überhaupt verstehe ich noch nicht den Mechanismus, wo wie wird entschieden, welches Design daherkommt?
Und, wozu ist überhaupt das "Master"?
Oder - brauche ich überhaupt diese Ansichten "Galaxy S5" usw. vielleicht reicht mir ja auch erstmal nur
das Master?
Mir ist ausserdem noch nicht klar, wie ich die Ansichten einsetze und dafür sorge, dass mein
GUI Design,
also alle meine Buttons usw. auf verschiedenen Geräten dann auch sichtbar sind und nicht am Rand verschwinden.
Bräuchte so einen Startup Tipp
Viele Grüße, Jürgen