Hallo Thorsten,
mit einem ausführlichen Tutorial kann ich Dir nicht dienen. Aber vielleicht bringt Dich dieser Betrag etwas weiter:
https://www.delphipraxis.net/180598-...r-android.html
Die Möglichkeiten, die Dir Layouts, Multiresbitmaps und die Properties Align, Anchors, Margin, Padding bieten, sind Dir bekannt?
Ich habe einige EBooks durchgefräst. Ich komme zu den Fazit, dass Bücher dort Enden wo die Probleme anfangen. Das Buch von Andrea Magni fand ich noch am besten.
https://www.packtpub.com/product/del.../9781788624176
Hier mein Code, mit dem ich mir über die Informationen über das Gerät anzeigen lasse, auf dem meine App läuft. Das hat mir geholfen, die Zusammenhänge zwischen logischen und physikalischen Koordinaten, Screenscale, Bitmapscale und Zoomfaktor des Tablets zu verstehen.
Delphi-Quellcode:
procedure TfrmSystemInfo.FormCreate(Sender: TObject);
Var ScreenSvc:IFMXScreenService; W,H:Integer; DevMet:IFMXDeviceMetricsService;
DspMet:TDeviceDisplayMetrics; Device:IFMXDeviceService;
SO:TScreenOrientation;
begin
ShowDeviceInfo;
DevMet:=IFMXDeviceMetricsService(TPlatformServices.Current.GetPlatformService(IFMXDeviceMetricsService));
Device:=IFMXDeviceService(TPlatformServices.Current.GetPlatformService(IFMXDeviceService));
ScreenSvc:=IFMXScreenService(TPlatformServices.Current.GetPlatformService(IFMXScreenService));
DspMet:=DevMet.GetDisplayMetrics;
LTouchScreen.Visible:=(TDeviceFeature.HasTouchScreen in Device.GetFeatures);
LPhysicalSize.Text:=Format('Width %d x Height %d',
[DspMet.PhysicalScreenSize.cx,DspMet.PhysicalScreenSize.cy]);
LRawSize.Text:=Format('Width %d x Height %d',
[DspMet.RawScreenSize.cx,DspMet.RawScreenSize.cy]);
LLogicalMetricsSize.Text:=Format('Width %d x Height %d',[DspMet.LogicalScreenSize.cx,DspMet.LogicalScreenSize.cy]);
LLogicalScreenSize.Text:=Format('Width %.0f x Height %.0f',[Screen.Size.cx,Screen.Size.cy]);
LLogicalDeviceSize.Text:=Format('Width %.0f x Height %.0f',[ScreenSvc.GetScreenSize.X,ScreenSvc.GetScreenSize.Y]);
LScreenScale.Text:=Format('%f', [DspMet.ScreenScale]);
LFontScale.Text:=Format('%f', [DspMet.FontScale]);
LAspectRatio.Text:=Format('%f', [DspMet.AspectRatio]);
SO:= ScreenSvc.GetScreenOrientation;
case SO of
TScreenOrientation.Portrait: LOrientation.Text:='Portrait';
TScreenOrientation.Landscape: LOrientation.Text:='Landscape';
TScreenOrientation.InvertedPortrait: LOrientation.Text:='InvertedPortrait';
TScreenOrientation.InvertedLandscape: LOrientation.Text:='InvertedLandscape';
else LOrientation.Text:='Unknown';
end;
end;
Grüße vom FMX Anfänger