如何获取当前设备的dpi?

lok*_*oki 1 delphi android ios firemonkey

是否有任何函数可以检索移动设备(android/ios)的 DPI(或屏幕密度)?我隶属于德尔福悉尼公司。

Dal*_*kar 5

在 FireMonkey 中,可以通过平台服务访问各种平台信息。要检索 PPI (DPI) 和设备显示比例,您可以使用IFMXDeviceMetricsServiceIFMXScreenService

var
  MetricsService: IFMXDeviceMetricsService;
  Metrics: TDeviceDisplayMetrics;
  PPI: Integer;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXDeviceMetricsService, MetricsService) then
  begin
    Metrics := MetricsService.GetDisplayMetrics;
    PPI := Metrics.PixelsPerInch;
  end;
end;


var
  ScrService: IFMXScreenService;
  ScrScale: Single;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, ScrService) then
  begin
    ScrScale := ScrService.GetScreenScale;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

您可以在FireMonkey 平台服务中找到的所有 FMX 平台服务和信息的列表

注意:某些服务(例如 )IFMXDeviceMetricsService未在文档中列出。