AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Galaxy S5 eigene Ansicht wird nicht verwendet, bzw. Auflösung passt nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

Galaxy S5 eigene Ansicht wird nicht verwendet, bzw. Auflösung passt nicht?

Ein Thema von OrtmannMedia · begonnen am 30. Jan 2016 · letzter Beitrag vom 6. Feb 2016
Antwort Antwort
OrtmannMedia
(Gast)

n/a Beiträge
 
#1

Galaxy S5 eigene Ansicht wird nicht verwendet, bzw. Auflösung passt nicht?

  Alt 30. Jan 2016, 10:37
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

  Mit Zitat antworten Zitat
Rollo62
Online

Registriert seit: 15. Mär 2007
4.069 Beiträge
 
Delphi 12 Athens
 
#2

AW: Galaxy S5 eigene Ansicht wird nicht verwendet, bzw. Auflösung passt nicht?

  Alt 5. Feb 2016, 21:10
Ich würde sowieso immer versuchen so responsiv wie möglich zu programmieren.
Mit Align, etc. sollten sich die Position automatisch anpassen.

Zuviel Buttons in einer Reihe sind sowieso nicht so gern gesehen (zumindest bei iOS ist das Limit 5).

Die Ansichten sehe ich nur als schönen, schnellen Viewer der einem das Feeling mal schnell zeigen kann.
Ich mach möglichst Alles im Master bevor ich an einem View rumschraube.

Für pixelgenaue Positionierung und 1:1 Darstellung würde ich das jedenfalls nicht verwenden.

Ich versuche Responsive Designs zu machen, die sich je nach Gerät Phone/Tablet/Watch anders einstellen.
Dazu kann man aber wieder die Ansichten/Views benutzen, die dann natürlich je nach Gerät ganz anders aussehen könnten.
Besser finde ich aber dafür gleich verschiedene Forms zu verwenden, die dynamisch getauscht werden,
z.B. FormMainPhone, FormMainTablet, ...
So kann man den groben GeräteArten besser gerecht werden.

Die "kleinen" Geräte Unterschiede in einer Klasse bekomme ich ganz gut mit Aligns und vor Allem auch Platzierung von e.g. Buttons
als Subkomponente in z.B. einem übergeordnetem TLayout.


Rollo
  Mit Zitat antworten Zitat
OrtmannMedia
(Gast)

n/a Beiträge
 
#3

AW: Galaxy S5 eigene Ansicht wird nicht verwendet, bzw. Auflösung passt nicht?

  Alt 6. Feb 2016, 11:32
Hallo,
danke für die Info.
Ja, denke, das wird wirklich so am besten sein. Werde es so probieren wie von Dir vorgeschlagen.
Erst mal alles nur im Master, und responsiv. Ggf. mehrere Forms ist auch eine gute Idee.
Viele Grüße Jürgen
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz