안드로이드 해상도를 보면 1920×1080 FHD 해상도라고 하지만 실제로 코드상으로 값을 측정해보면 640×360 으로 보여집니다. (물론 단말기에 따라 1920×1080일수도 있고 다른 값으로 보여질 수 있습니다.)
이게 차이가 나는 이유는 dp와 px의 개념을 이해하면 되는데 “device independent pixel – dp or dip” 가 실제 물리적인 해상도이고 px는 scale값을 이용해 구할 수 있습니다.
해당 내용은 링크 를 통해 더 알아보실 수 있습니다.
FireMonkey에서는 다음의 코드를 통해 dp와 scale 값을 구해서 해상도를 알 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
uses FMX.Platform; procedure ShowScreenSize; var ScreenSvc: IFMXScreenService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenSvc)) then begin ShowMessage( 'Res : ' + ScreenSvc.GetScreenSize.X.ToString + ' x ' + ScreenSvc.GetScreenSize.Y.ToString + #13#10 + 'Scale : ' + ScreenSvc.GetScreenScale.ToString ); end; end; |